WordPressで設定したタイムゾーン・フォーマットで日時やタイムスタンプを取得する方法

WordPressでローカルの日時やタイムスタンプを正確に取得する方法
2018年8月1日2020年6月10日
この記事は最終更新から3年以上経過しています。内容が古くなっている可能性があります。

今回はワードプレスの管理画面で設定したタイムゾーン・フォーマットで、日時やタイムスタンプを取得する方法です。

私自身、しばらくWordPressの仕事から遠ざかっていたりすると、いつも日付の取得の時に迷ってしまいます。PHPにもWordPressにも、日付関連の関数やテンプレートタグがうじゃうじゃありますからね。
WordPressだってPHPなんだから、PHPの関数でいいんじゃない?なんて思って軽い気持ちでPHP関数を書くと、標準時で取得してしまって9時間ずれてしまったり…。

以下の取得方法なら、その手の心配はありませんし、フォーマットも統一できます。せっかく管理画面で設定しているのですから、きちんとワードプレスのやり方で取得してあげましょう。日時文字列とタイムスタンプで分けて書いていきたいと思います。

日時(文字列)の取得

まずは、そのままechoしても問題ない、フォーマットされた日時の文字列の取得。

以下の方法はすべて、標準時ではない「WordPressで設定したタイムゾーンのローカル日時」を、「WordPressで設定した日付(時刻)フォーマット」で取得できる。

ページにアクセスした現在の日時

現在の日時の取得には、date_i18n()を使う。引数にはフォーマットが必須なので、引数無しだとエラーになる。

WordPressで指定した日付フォーマットで現在の日付を取得

実際に出力⇒2024年3月29日

現在の日付にWordPressで設定したフォーマットで現在時刻まで取得

実際に出力⇒2024年3月29日07:39

WordPressの設定とはフォーマットを変えて取得

実際に出力⇒今は2024年03月の29日だっちゅうの!

日付や時刻フォーマットのマニュアル

Y・m・dなどの、日付や時刻のフォーマットで使える形式は、PHP: サポートする日付と時刻の書式 – Manualに詳しく載っている。

公開日時

記事の公開日時を文字列で取得するには、get_the_date()を使う。

実際に出力⇒2018年8月1日

get_the_date()は、引数無しでは、年月日のみをWordPressで設定している日付フォーマットで取得するが、引数でフォーマットを記述すれば、時刻や秒まで取得可能。

WordPressで設定しているフォーマットで公開時刻まで取得

実際に出力⇒2018年8月1日00:41

アーカイブページなどで繰り返し表示する場合

get_the_date()で公開日は取得できるが、アーカイブページなどで記事ごとに公開日を表示したい場合などは注意が必要。get_the_date()は、同じ日付で複数の投稿があると、ループの初回しか取得してくれない。
つまり、get_the_date()で取得した内容を表示してくれるthe_date()を使用すると、2018/03/03に3件の投稿があった場合、1件目にしか日付が出ない。という事で、下のようにget_the_time()を使用するとよい。

最終更新日時

記事の最終更新日を文字列で取得するには、get_the_modified_date()を使う。

実際に出力⇒2020年6月10日

こちらも引数無しでは日付のみの取得となるが、引数でフォーマットを指定すれば、時刻も秒も取得可能。get_the_date()と、ほぼ同じ感覚で使用できる。

WordPressで設定しているフォーマットで最終更新時刻まで取得

実際に出力⇒2020年6月10日09:31

タイムスタンプを取得

カスタマイズなどの場合、タイムスタンプで取得したい場合も多い。すべて標準時ではなく、WordPressの設定->一般->タイムゾーンで選択しているローカル時刻でタイムスタンプを取得できる。

現在の日時のタイムスタンプ

現在の日時にはやはりdate_i18n()を使う。date_i18n()の第1引数を『U』とする事で、現在の日時のタイムスタンプが取得できる。

実際に出力⇒1711697985

公開日時のタイムスタンプ

公開日時のタイムスタンプは、get_post_time()を使う。引数は初期値が「U」になっているため、引数無しでタイムスタンプが取得可能。

実際に出力⇒1533084094

最終更新日時のタイムスタンプ

色々な方法で取得できるが、get_the_modified_time()が一番簡潔かと思う。get_post_time()と違い、フォーマットの初期値がWordPressの設定で指定した時刻フォーマットになるため、引数無しではタイムスタンプではなく時刻のみが取得される。引数に「U」を指定すると、最終更新日時のタイムスタンプを取得できる。

実際に出力⇒1591781505

関連のある記事

ワードプレスの管理画面メニューのラベルテキストを変更する方法

ワードプレスの管理画面メニューのラベルテキストを変更する方法

記事を読む

【初心者向け・目的別】ワードプレスでURLやパスを取得する関数まとめ

【初心者向け・目的別】ワードプレスでURLやパスを取得する関数まとめ

記事を読む

MW WP Formで郵便番号から住所を自動入力させる方法

MW WP Formで郵便番号から住所を自動入力させる方法

記事を読む

MW WP Formで動的にフォームのデフォルト値を設定する方法

MW WP Formで動的にフォームのデフォルト値を設定する方法

記事を読む

MW WP Formのセレクトボックス・チェックボックス・ラジオボタンを動的に設定する方法

記事を読む

ブロックエディタ(Gutenberg)の編集画面にeditor-style.cssを読み込ませる方法【WordPress】

ブロックエディタ(Gutenberg)の編集画面にeditor-style.cssを読み込ませる方法【WordPress】

記事を読む

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

目次へ