php日期()与mysql月份()的比较
我有这个unix时间戳值:1275364800(2010年6月1日) 使用php打印该值时:php日期()与mysql月份()的比较,php,mysql,date,Php,Mysql,Date,我有这个unix时间戳值:1275364800(2010年6月1日) 使用php打印该值时: echo日期('m',1275364800) 它返回6(没关系) 但当我从数据库中选择一个字段时:selectmonth(from_UNIXTIME(1275364800))AS MONTH返回5 为什么? 顺便说一句,如果我运行这个查询从UNIXTIME(1275364800)中选择q我得到2010-05-31 23:00,因为1275364800在mysql的区域设置中是2010-05-31而不是2
echo日期('m',1275364800)
它返回6(没关系)
但当我从数据库中选择一个字段时:selectmonth(from_UNIXTIME(1275364800))AS MONTH
返回5
为什么?
顺便说一句,如果我运行这个查询从UNIXTIME(1275364800)中选择q我得到2010-05-31 23:00,因为
1275364800
在mysql的区域设置中是2010-05-31
而不是2010年6月1日
。这些是在不同的机器上运行的吗?要在MySql中设置区域设置,请执行以下操作
首先检查您的本地地址:
mysql> SELECT @@lc_time_names;
+-----------------+
| @@lc_time_names |
+-----------------+
| en_US |
+-----------------+
为了确保其使用正确,如果这是正确的,请更改您的apache/php语言环境
更改MySql中的语言环境
mysql> SET lc_time_names = 'en_UK';
Query OK, 0 rows affected (0.00 sec)
en_UK是你想要改变的
mysql> SELECT @@lc_time_names;
+-----------------+
| @@lc_time_names |
+-----------------+
| en_UK |
+-----------------+
希望这对你有帮助 可能是时区问题吗?在我的机器上,两者都返回
6
…实际上它们都在同一台机器上运行。。。这就是我不明白的。嗨,我这么做了,但在做了:“设置lc_时间_名称='en_UK'”,更改不会被保存,所有内容都会保持为en_u使用全局,设置全局lc_时间_名称='en_UK';