3

私はこの問題に遭遇しました:

<?php

echo date('r', 4567743118);

望ましい&正しい結果(ローカルホスト上):

日、2114 年 9 月 30 日 10:31:58 +0100

誤った結果 (リモート):

1978 年 8 月 24 日木曜日 04:03:42 +0100

32 ビット プラットフォームでスクリプトを実行すると、悪い結果が得られます。有名なY2038問題だと思いますが、どうすれば直せますか?

タイムスタンプをエコーすると(変数に保存されている場合)、正常に表示されますが、date()破棄されます(int32にキャストすると思います)。

<?php
$a = 4567743118;
echo $a;

4567743118

[該当する場合は、debian リポジトリの PHP 5.4.4 です]

4

2 に答える 2

2

これを試して:

<?php

$dt = new DateTime('@4567743118');
$date = $dt->format('Y-m-d');

echo $date;

run code on x86 machine

于 2014-10-24T10:15:57.640 に答える