ホームページ  >  記事  >  バックエンド開発  >  PHP strtotime アプリケーション エクスペリエンス_PHP チュートリアル

PHP strtotime アプリケーション エクスペリエンス_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:34:37825ブラウズ

strtotime(date("Y-m-01 00:00:00")); // 今月の初日のタイムスタンプを取得するために使用されます

実際の PHP strtotime アプリケーションで突然変換が発生しました実際の時間より8時間遅れてしまいました! php.ini の

タイムゾーン設定が間違っていることが原因だと思いました。一連の検査の後、最終的に strtotime 関数で問題をロックしました (問題は Linux サーバーでよく発生し、WINDOWS サーバーから返されるデータは基本的に正しい)

PHP マニュアルを注意深く読んで、最初のパラメーター time に形式要件があることがわかりました

time

GNU » Date Input Formats 構文に従って、解析する文字列。PHP 5.0.0 より前では、マイクロ秒は許可されませんでした。 PHP 5.0.0 以降では許可されていますが、無視されます。

見つかった日付入力形式についてはさらに続報

$ LC_ALL=C TZ=UTC0 date
Mon Mar 1 00:21:42 UTC 2004
$ TZ=UTC0 日付 +'%Y-%m-%d %H:%M:%SZ'
2004-03-01 00:21:42Z
$ 日付 --iso-8601=ns | tr T ' ' # --iso-8601 は GNU 拡張機能です。
2004-02-29 16:21:42,692722128-0800
$ date --rfc-2822 # GNU 拡張機能です
Sun, 29 Feb 2004 16:21:42 - 0800
$ 日付 +'%Y-%m-%d %H:%M:%S %z' # %z は GNU 拡張機能です。
2004-02-29 16:21:42 -0800
$ 日付 + ' @%s.%N' # %s と %N は GNU 拡張機能です。
@1078100502.692722128

一般的に使用されている形式 yyyy-mm-dd HH:ii:ss が要件を満たしていないことがわかりました。大まかに検討した結果、UTC0 形式を使用することにし、上記のコードを次のコードに更新しました
strtotime(date("Y-m-01 00:00:00")."Z"); // 初日の取得に使用します。今月のタイムスタンプ
この問題は解決しました!

PHP strtotime アプリケーションの概要:

開発プロセス中、システムのサポートにより、いくつかの詳細を見落とすことがありました。この例のように、この問題は WINDOWS プラットフォームでは発生しませんが、PHP strtotime アプリケーションは引き続き仕様に従う必要があります。そのような問題を避けるために。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445988.html技術記事 strtotime(date(Y-m-01 00:00:00)); // 実際の PHP strtotime アプリケーションでは、変換された時間が実際の時間よりも遅いことに遭遇しました。 8時間...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。