この記事では、DateTime クラスに基づく Unix タイムスタンプと日付変換の問題に対する PHP の解決策を主に紹介します。この解決策は、DateTime クラスを使用して、1970 年以前と 2038 年以降のタイムスタンプの表示と計算の問題を解決します。これは非常にシンプルで実用的です。この記事では、PHP が DateTime クラスに基づいて Unix のタイムスタンプと日付変換の問題を解決する方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです。
この問題は主に 32 ビット システムで発生し、64 ビット システムではこのような問題は発生しません。 PHP 5.2 では、このような問題に対処するためのDateTime クラス を提供しています。参考プランは次のとおりです (タイムゾーンの処理に注意してください)。 //1、Unix时间戳转日期
function unixtime_to_date($unixtime, $timezone = 'PRC') {
$datetime = new DateTime("@$unixtime"); //DateTime类的bug,加入@可以将Unix时间戳作为参数传入
$datetime->setTimezone(new DateTimeZone($timezone));
return $datetime->format("Y-m-d H:i:s");
}
//2、日期转Unix时间戳
function date_to_unixtime($date, $timezone = 'PRC') {
$datetime= new DateTime($date, new DateTimeZone($timezone));
return $datetime->format('U');
}
echo date_to_unixtime("1900-1-31 00:00:00"); //输出-2206425952
echo '<br>';
echo unixtime_to_date(date_to_unixtime("1900-1-31 00:00:00")); //输出1900-01-31 00:00:00
以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
php を使用して複数画像のアップロード圧縮機能を処理する方法html_entity_decode を使用して、 PHP Entity Escape に HTML を実装する
以上がDateTime クラスに基づいて PHP で Unix タイムスタンプと日付を変換する問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。