2012-01-16 3 views
1

strtotime()機能を使用して日付を変換するとき、それは自動的に既存の日付に1時間を追加しました。例えばPHPで文字列をstrtotime()で時刻に変換すると、1時間が追加されます。なぜですか?

$PublishDate = "1/13/2012 **17**:0"; 
echo strtotime($PublishDate); 

// OUTPUT : 1/13/2012 **18**:0 

1時間に自動的に増やされるのはなぜ?

+6

上記のコードでは日付は出力されませんが、UNIXのタイムコードは出力されません。あなたは私たちにあなたが日付を印刷するために使用しているラインを教えてもらえますか? – MrGlass

+3

また、PHPでデフォルトのタイムゾーンが設定されていますか? – jere

+0

'strtotime()'は入力のための限られた数の日付フォーマット(http://www.php.net/manual/en/datetime.formats.php)のみをサポートしています。たぶん、あなたは 'strptime()'と 'mktime()'の組み合わせを使う方がいいかもしれませんし、 'DateTime'クラスの静的コンストラクタを使うこともできます。 – Corubba

答えて

0

何か奇妙なことがここで起こっています。 strtotime()は、日付の文字列表現をUnixの時刻形式に変換する試みを変換します(the strtotime() documentationを参照)。 Unix時間は、1970年1月1日からの秒数の合計です。これは、1326723022(現在のUnix時間)です。あなたはUnix時間hereについてもっと読むことができます。

strtotime()は、常に32ビット整数またはFALSE(古いバージョンのPHPでは-1)を返す必要があります。

関連する問題