system
矢口 奈果

2020.6.8HTML/CSS システム開発 

Webクリエイター

矢口 奈果

【初心者向けWordPress】日付が1日ズレる!?デイトピッカーの罠

こんにちは。餃子にタレつけない派のWebクリエイター、矢口です。
先日WordPressのカスタムフィールドでデイトピッカーを使用した際、なぜか1日前の日付が表示されるという不具合が発生しました。

グループ 1

ソースコードがデロ●アンに乗っちゃったのかと思ったのですが、よくよく調査してみるとWordPress5.3のアップデートの影響のようです。

調査のため、5.3アップデート時のWordPress公式サポートページで関係ありそうな部分を翻訳してみました。
要約すると、

  • ・時間を扱うコードが10年以上前の古いものだったからアップデートしたよ
  • ・プラグインやテーマには古いコードの時の動きをしちゃうものがあるよ(「date_default_timezone_set」とか!)
  • ・時間はUTCで計算されるから、タイムゾーン変更しちゃうと間違った計算になっちゃうよ

 
こんな感じでしょうか。詳しい内容が知りたい方は公式ページをご覧ください。
 
ここで怪しいのが、上記にもちょろっと書いた「date_default_timezone_set」関数ですね。
デフォルトのタイムゾーンを変更できる関数です。
怪しいのでひとまずfunctions.phpを見てみましょう。
 

コメント 2020-06-04 105346

思いっきりいる
 

コメント 2020-06-04 105436
上記で書いた通り、タイムゾーンを変更すると計算が狂ってしまいます。
つまり完全にこいつが戦犯ですね。容赦なく消します。

コメント 2020-06-04 105520

正しい表示になりました!
date_default_timezone_setでタイムゾーンを日本に設定していたため、標準時間(UTC)と-9時間の誤差が生じていたんですね。。

ちなみに、タイムピッカー・デイトタイムピッカーでも同様の現象が見られました。

もしデイトピッカーがバッ●トゥザフュー●ャーしちゃった。。という方はfunctions.phpを覗いて、date_default_timezone_set関数の有無を確認してみてください!

それでは。

現役ウェブ解析士が教えるWebサイトの読み解き方 イメージ
ホームページ制作サービスはこちら
ページTOPへ