WEB DESIGN

phpのdate();で0埋めなしの「1桁の日にち」を取得する方法

2024-03-20 12:03
Webデザイン

幕末の今日なにがあったかを表示するwpプラグインを作っています。

旧暦だから日本語で「文久2年9月3日」みたいに「1桁の日にち」も0埋めなしの数字で表示したくて調べました。
(ちなみに加藤有鄰が桂さんに高杉出奔をチクる手紙を出した日です)

0埋めなしの「月」は「n」で取得できます。
0埋めなしの「日」は「j」で取得できます。

jは、なぜか日付フォーマットを紹介しているサイトからは漏れてることが多いです。


date( 'n月j日' );

これで「9月3日」のように、1桁の日にちも0埋めなしで取れました。

元号表記の「文久2年」はどうしようもないので


'文久2年' . date( 'n月j日' );

のようにくっつけてます。

存在を忘れられがちな「j」

0埋めなしの「月」は「n」で取れるけど「日」は「d」と解説しているサイトばかり。
「d」だと1桁の日は「03」とかになってしまいます。

けどどのサイトも「日」は「d」しか書いてない……。

散々なやんだらphp公式サイトには「j」が書いてありました。

公式サイトのデザインは初心者には見づらい・そっけない・例が難しすぎるので、つい解説ブログとかに頼ってしまいます。
でも、やっぱ公式みないとダメですね。

phpのdate();で0埋めなしの「分・秒」を取得する方法

ちなみに、0埋めなしの「分・秒」を表示する方法は日付フォーマットにないそうです。
「分」の「i」・「秒」の「s」も「00」みたいになります。


// 0埋めなし「分(i)」
preg_replace( '/^0/' , '' , date( 'i' ) );

// 0埋めなし「秒(s)」
preg_replace( '/^0/' , '' , date( 's' ) );

こうやって正規表現?を使って「先頭の0」を取るしかないみたい。
不便ですね。
全部に0埋めなしを用意してほしいです。

wordpressならwp_date();

前回はまったので記載しておきます。

wordpressで現在の日時が欲しい時はdate();ではなくwp_date();を使います。

wordpressの仕様でdate();を使うとUTC(世界標準時)の日時が取得されるようです。

かわりにwordpress独自のwp_date();を使うと現在の日本の日時が取得できました。

正確にはwordpressの「設定>一般設定>タイムゾーンで設定したタイムゾーンの日時」が取得できます。

\ SHARE & LIKE /

\ SHARE & LIKE /

歴ヲタ女子向けの幕末・歴史グッズのお店「小間物屋歴創」