Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php日期()与mysql月份()的比较_Php_Mysql_Date - Fatal编程技术网

php日期()与mysql月份()的比较

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

我有这个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
而不是
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';