我遇到了一个有点令人沮丧的问题,我有一种感觉,有一个简单的解决方案。当我将相同的UNIX时间戳传递给PHP date
和MySQL FROM_UNIXTIME
方法时,它们返回两个完全不同的日期。我想从MySQL返回一个与PHP返回的值相匹配的值。PHP和MySQL正在为相同的时间戳返回不同的日期
这是我目前使用的代码以及它的输出。提供的时间戳代表日期Tue, 01 Jan 2013 (01/01/2013)
。另外供参考,这里是格式值。
MySQL的格式
- 引用%j年(001..366)的=日。
- %m =月份,数字(00..12)。
- %y =年份,数字(两位数字)。
PHP格式
- Z = 0(0到365)开始的一年中的天。
- m =一个月的数字表示,前导零(01到12)。
- y =一年的两位数表示(例如:99或03)。
MySQL查询
SELECT FROM_UNIXTIME(1357018200, '%j-%m-%y');
-> 366-12-12
PHP代码
echo date('z-m-y', 1357018200);
-> 0-01-13
任何帮助将不胜感激,感谢您的时间。 :)
其他信息
- MySQL版本:5.5.23
- MySQL的system_time_zone:CDT
- MySQL的TIME_ZONE:SYSTEM
- PHP date_default_timezone_get:美洲/ C hicago(CDT)
我认为这可能是一个时区问题。检查什么时区MySQL('show variables like'%time_zone';')和PHP使用(['date_default_timezone_get'](http://php.net/manual/en/function.date-default-timezone-get.php) )。 – vstm
是的 - 以及发布这些变量,你可以发布你正在使用的MySQL版本。 – Danack
我已经使用时区信息和SQL版本更新了帖子。 :) – Artail