少しイライラする問題に直面していますが、簡単な解決策があると感じています。同じ UNIX タイムスタンプを PHPメソッドdate
と MySQLFROM_UNIXTIME
メソッドに渡すと、2 つのまったく異なる日付が返されます。PHP が返す値と一致する値を MySQL から返したいと考えています。
これが私が現在使用しているコードとその出力です。提供されるタイムスタンプは日付を表しますTue, 01 Jan 2013 (01/01/2013)
。参考までに、ここにフォーマット値を示します。
MySQL 形式
- %j = 日 (001..366)。
- %m = 月、数値 (00..12)。
- %y = 年、数値 (2 桁)。
PHP フォーマット
- z = 0 から始まる年間通算日 (0 から 365)。
- m = 先行ゼロ (01 から 12) を付けた月の数値表現。
- y = 年を表す 2 桁の数字 (例: 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 : システム
- PHP date_default_timezone_get : アメリカ/シカゴ (CDT)