[WordPress] サイドバーに経過日数を表示する3
先日、WordPress 上での DateTime クラスを用いた経過日数の表示について書いた。
[WordPress] サイドバーに経過日数を表示する2 – with a Christian Wife
https://wacw.cf/2021/07/29/day-counter-on-wordpress-widget-2/
しかし、なぜか1日ずれる時がある。ふと、タイムゾーンの設定をしていないからだと気付いた。
以下のように書き換えてうまくいった(分かりやすいように現在時刻も表示させている)。
1<?php
2
3$time1 = new DateTime('now', new DateTimeZone('Asia/Tokyo'));
4$time2 = new DateTime('2019-03-08', new DateTimeZone('Asia/Tokyo'));
5
6$diff = $time1->diff($time2);
7
8echo '今日は 2019/04/01 から数えて ';
9echo $diff->format('%a 日目です。'), PHP_EOL;
10echo $diff->format('これは %y 歳 %m か月 %d 日です。'), PHP_EOL;
11echo $time1->format('(現在時刻:Y/m/d H:i:s P)');
12?>
これで結果は以下のようになるはずだ。
今日は 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