3

次のステートメントを使用して、php5.3でエポックタイムスタンプを変換しようとしています

date('d-m-Y',strtotime('1349042399999'));

人間が読める形式に変換し、間違った結果を取得する:01-01-1970何を返す必要があるか30-09-2012。私は周りを検索して次のトピックを見つけました。PHPstrtotimeは、日付列がnullの場合に1970年の日付を返しますが、私の場合は役に立ちませんでした。

4

3 に答える 3

7

その理由は、そのタイムスタンプにミリ秒が埋め込まれているため、整数のオーバーフロー制限を超えてしまうためです。

最後の3文字を切り刻むと、準備が整います。

$original_timestamp = "1349042399999";
$timestamp = (int) substr($original_timestamp,0,-3);

echo date('d-m-Y',$timestamp);
于 2012-09-08T20:52:46.883 に答える
0

を使用してstrtotime、タイムスタンプを別のタイムスタンプに変換しようとしています。タイムスタンプもマイクロ秒単位です。このdate関数には、次のようにマイクロ秒なしのタイムスタンプが必要です。

date('d-m-Y',substr('1349042399999', 0, -3));
于 2012-09-08T20:51:58.957 に答える
0

2番目のRikudoソリューションは、ミリ秒をトリミングするためではなく、intへのキャストのために機能したと思います。

これはあなたのために働くはずだと私には思えます(それは私のために働きました)

$ original_timestamp = "1349042399999"; date('dmY'、(int)$ original_timestamp);

于 2014-04-10T17:42:56.323 に答える