[WordPress] サイドバーに経過日数を表示する3

先日、WordPress 上での DateTime クラスを用いた経過日数の表示について書いた。

[WordPress] サイドバーに経過日数を表示する2 – with a Christian Wife
https://wacw.cf/2021/07/29/day-counter-on-wordpress-widget-2/

しかし、なぜか1日ずれる時がある。ふと、タイムゾーンの設定をしていないからだと気付いた。

以下のように書き換えてうまくいった(分かりやすいように現在時刻も表示させている)。

<?php

$time1 = new DateTime('now', new DateTimeZone('Asia/Tokyo'));
$time2 = new DateTime('2019-03-08', new DateTimeZone('Asia/Tokyo'));

$diff = $time1->diff($time2);

echo '今日は 2019/04/01 から数えて ';
echo $diff->format('%a 日目です。'), PHP_EOL;
echo $diff->format('これは %y 歳 %m か月 %d 日です。'), PHP_EOL;
echo $time1->format('(現在時刻:Y/m/d H:i:s P)');
?>

これで結果は以下のようになるはずだ。

今日は 2019/04/01 から数えて 875 日目です。
これは 2 歳 4 か月 22 日です。
(現在時刻:2021/07/30 13:52:51 +09:00)

参考:
PHPで日付や時刻をフォーマットする(1月1日、1/1など)
https://www.flatflag.nir87.com/date-473

DateTime クラスで時刻を扱う | まくまくPHPノート
https://maku77.github.io/php/time/datetime.html