BLOGスタッフブログ

インソースマーケティングデザイン

2020.06.08 コーディング

【初心者向け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関数の有無を確認してみてください!

それでは。

インソースマーケティングデザインが書いた他の記事

見積もり・ご依頼など、
お気軽にご相談ください

本サイトはユーザーエクスペリエンスの向上などを目的に、Cookieを使用しています。
右記のバナーで「同意する」をクリックする、または本サイトを利用することにより、
お客様は弊社のCookieポリシーに同意したことになります。

同意します