Help us understand the problem. What is going on with this article?

[WordPress]v5.3から日付の表示が変わったので

表示をまとめておく。

管理画面>設定>一般 のタイムゾーンは「東京」

functions.php
date_default_timezone_set('Asia/Tokyo');

を記載した状態。

screenshot.png

とりあえず旧クラシックエディターでは表示される、
公開日時とその編集用フォームの値が一致しなくなる(上記画像参照)
正しいのはフォームの値。
ブロックエディター使えってことなのかな。使いたくないんだが。
ここのテンプレートは/wp-admin か/wp-includes 以下のやつなんで編集できない。
フィルターがあれば変えれるやろうけど今はまだめんどくさいのでそのうちに調べる。

画像につかった 2019-12-01 00:00:00 (日曜日)の投稿を元に各関数の表示をまとめておく。

------------
WP関数
------------

echo get_the_time('Y年m月d日(D) H:i:s', $post);
// 2019年12月01日(日) 00:00:00 > 正

echo get_the_date('Y年m月d日(D) H:i:s', $post);
// 2019年12月01日(日) 00:00:00 > 正

echo get_post_time('Y年m月d日(D) H:i:s', false, $post);
// 2019年12月01日(Sun) 00:00:00 > 正

echo get_post_time('Y年m月d日(D) H:i:s', true, $post);
// 2019年11月30日(Sat) 00:00:00 > 誤

------------
date()
------------

echo date('Y年m月d日(D) H:i:s', get_the_date('U', $post));
// 2019年12月01日(Sun) 09:00:00 > 誤

echo date('Y年m月d日(D) H:i:s', get_the_time('U', $post));
// 2019年12月01日(Sun) 09:00:00 > 誤

echo date('Y年m月d日(D) H:i:s', get_post_time('U', false, $post));
// 2019年12月01日(Sun) 09:00:00 > 誤

echo date('Y年m月d日(D) H:i:s', get_post_time('U', true, $post));
// 2019年11月30日(Sat) 09:00:00 > 誤

------------
date_i18n() ※WP関数
------------

echo date_i18n('Y年m月d日(D) H:i:s', get_the_date('U', $post));
// 2019年12月01日(日) 00:00:00 > 正

echo date_i18n('Y年m月d日(D) H:i:s', get_the_time('U', $post));
// 2019年12月01日(日) 00:00:00 > 正

echo date_i18n('Y年m月d日(D) H:i:s', get_post_time('U', false, $post));
// 2019年12月01日(日) 00:00:00 > 正

echo date_i18n('Y年m月d日(D) H:i:s', get_post_time('U', true, $post));
// 2019年11月30日(土) 00:00:00 > 誤

WP関数使うならget_the_time()かget_the_date()
タイムスタンプからやるならdate_i18n()
を使えば問題ないと思われ
ほとんどの人は影響ないと思うけど。

で、
strtotime('2019-12-01 00:00:00')
を使う場合、つまり投稿とは関係ない日時を表示する場合

echo date('Y年m月d日(D) H:i:s', strtotime('2019-12-01 00:00:00'));
// 2019年12月01日(Sun) 00:00:00 > 正

echo date_i18n('Y年m月d日(D) H:i:s', strtotime('2019-12-01 00:00:00'));
// 2019年11月30日(土) 15:00:00 > 誤

つーことなんでdate()使っておけば良い。

まとめると本当にほとんどの人には影響なさそう。
私の場合はそもそも
get_the_time('D')で日本の曜日が出ることを知らなんだので
date('w', get_the_date('U', $post)) から置換していたためもろに影響が出た。

また、
Advanced Custom Fieldsの
デイトピッカーとタイムピッカーがもれなくずれるので
(DBの値は変わらないが投稿編集の画面での値がずれる)
しょうがなくテキストフォームに変える。

・関係ありそうなやつリスト
Date/Time component improvements in WordPress 5.3

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away