我遇到了一個有點令人沮喪的問題,我有一種感覺,有一個簡單的解決方案。當我將相同的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