我遇到了一个有点令人沮丧的问题,我觉得有一个简单的解决方案。当我将相同的 UNIX 时间戳传递给 PHPdate
和 MySQLFROM_UNIXTIME
方法时,它们将返回两个非常不同的日期。我想从 MySQL 返回一个与 PHP 返回的值匹配的值。
这是我当前使用的代码及其输出。提供的时间戳代表日期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 时区:系统
- PHP date_default_timezone_get : 美国/芝加哥 (CDT)