次のステートメントを使用して、php5.3でエポックタイムスタンプを変換しようとしています
date('d-m-Y',strtotime('1349042399999'));
人間が読める形式に変換し、間違った結果を取得する:01-01-1970
何を返す必要があるか30-09-2012
。私は周りを検索して次のトピックを見つけました。PHPstrtotimeは、日付列がnullの場合に1970年の日付を返しますが、私の場合は役に立ちませんでした。
次のステートメントを使用して、php5.3でエポックタイムスタンプを変換しようとしています
date('d-m-Y',strtotime('1349042399999'));
人間が読める形式に変換し、間違った結果を取得する:01-01-1970
何を返す必要があるか30-09-2012
。私は周りを検索して次のトピックを見つけました。PHPstrtotimeは、日付列がnullの場合に1970年の日付を返しますが、私の場合は役に立ちませんでした。
その理由は、そのタイムスタンプにミリ秒が埋め込まれているため、整数のオーバーフロー制限を超えてしまうためです。
最後の3文字を切り刻むと、準備が整います。
$original_timestamp = "1349042399999";
$timestamp = (int) substr($original_timestamp,0,-3);
echo date('d-m-Y',$timestamp);
を使用してstrtotime
、タイムスタンプを別のタイムスタンプに変換しようとしています。タイムスタンプもマイクロ秒単位です。このdate
関数には、次のようにマイクロ秒なしのタイムスタンプが必要です。
date('d-m-Y',substr('1349042399999', 0, -3));
2番目のRikudoソリューションは、ミリ秒をトリミングするためではなく、intへのキャストのために機能したと思います。
これはあなたのために働くはずだと私には思えます(それは私のために働きました)
$ original_timestamp = "1349042399999"; date('dmY'、(int)$ original_timestamp);