ホームページ >バックエンド開発 >PHPチュートリアル >PHPのタイムスタンプに関連する問題

PHPのタイムスタンプに関連する問題

WBOY
WBOYオリジナル
2016-06-13 12:52:14840ブラウズ

PHP タイムスタンプの問題

この投稿は、hongming271 によって 2013-03-05 16:20:16 に最終編集されました。 php 関数の日付関数は、一部のシステム (Windows など) では 1970 年 1 月 1 日から 2038 年 1 月 19 日までに制限されています。

現在、2038 年以降のタイムスタンプがありますが、日付を正しい標準時刻形式に変換できません。

もう 1 つの問題は、タイムスタンプが 1356969600 であることです。これを通常に変換すると、2013-1-1 00:00:00
になります。 例
$dt = new DateTime('@1356969600');<br />
echo $dt->format('Y-m-d H:i:s');

例の変換により、2012-12-31 16:00:00 となり、通常の効果より 8 時間短縮されました。

-----解決策---------
c235423b4004741c32a7b9746dba0890setTimezone(new DateTimeZone('アジア/上海'));
echo $dt->getTimezone()->getName(),"n";
echo $dt->format('Y-m-d H:i:s'), "n";
echo date('Y-m-d H:i:s',1356969600),"n";

-----解決策-------------- - -----
この投稿は xuzuning によって最終編集されました: 2013-03-06 09:41:27 DateTime::format は外部設定の影響を受けないように設計されています (オブジェクト指向であるべきです)
したがって、環境パラメータ date_default_timezone をどのように変更しても、出力結果には影響しません

DateTime::format のタイムゾーン設定を変更するには、
を尋ねる必要があります DateTime::setTimezone はタイムゾーン オブジェクト DateTimeZone
を渡します。
例:
$d = new DateTime('@1356969600');<br />
$d->setTimezone(new DateTimeZone('PRC'));<br />
echo $d->format('Y-m-d H:i:s');<br />
2013-01-01 00:00:00
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。