おはようございます。
せおゆりかです。

昨日、来月1日から変わる新年号が発表されましたね。

『令和』

意味は万葉集から採用したもので、

万葉集

「初春の令月にして 気淑く風和ぎ 梅は鏡前の粉を披き 蘭は珮後の香を薫らす」

から取られました。

これまで247ある元号はすべて中国の古典からとられてきたが、今回、初めて、日本の古典から選ばれたそうです。

来月から年号が変わるときに、ホームページも年号を書き換えないと・・・

これ、結構地味に面倒な作業なんですよね・・・

私は、年号が変わると書き換えるのが非常に面倒なので、絶対に西暦にしています。

お客様にも「年号で書かれるとわからないので、西暦の方がいいですよ」とゴリ押しおすすめしています。

決して、自分のためではないのです。

でも、年号だろうが西暦だろうが、HTMLだと書き換えが面倒

そこで、出てくるのがPHPですよ。

私もPHPは得意ではないですが、これなら置くだけ。
めっちゃ簡単。

よく、フッター部分にあるコレ。

よくあるやつ

©Copyright2019 プリンセスビジョン【PrincessVision】.All Rights Reserved.

ここの「2019」部分は、PHP処理されています。
だから、毎年いちいち該当部分のHTMLを開かなくても年が変わるごとに変えてくれます。

西暦をPHPで処理する

<?php echo date("Y/m/d"); ?>

これで、

"2017/08/21"

と表示されます。

ということは、上記の2019のみを表示させたいときは

<?php echo date("Y"); ?>

と表示させたらいいわけですよね。
簡単です。

参照:Code Camps

じゃあ和暦は表示させられるの?

考えてる人は考えてるんですよね・・・

参照:[PHP] 汎用和暦フォーマット関数(新元号対応版)

こんな感じで表示させられるそうです。

// 平成30年1月28日
convert_jpdt(time());
 
// 平成30年01月28日
convert_jpdt(time(),'年m月d日');
 
// H30.01.28
convert_jpdt(time(),'.m.d',false);

ソースコード

<? php
// 西暦→和暦変換
function convert_jpdt($dt,$fmt='年n月j日',$kanji=true) {
$date = (int)date('Ymd',$dt);
$year = (int)date('Y',$dt);
 
if ($date >= 20190501) { //令和元年(2019年5月1日以降)
$name = " R令和";
$year -= 2018;
} else if ($date >= 19890108) { //平成元年(1989年1月8日以降)
$name = " H平成";
$year -= 1988;
} else if ($date >= 19261225) { //昭和元年(1926年12月25日以降)
$name = " S昭和";
$year -= 1925;
} else if ($date >= 19120730) { //大正元年(1912年7月30日以降)
$name = " T大正";
$year -= 1911;
} else if ($date >= 18680125) { //明治元年(1868年1月25日以降)
$name = " M明治";
$year -= 1867;
} else {
$name = 'AD 西暦';
}
 
if ($kanji) {
$name = substr($name,3);
if ($year==1) $year = '元';
} else {
$name = ltrim(substr($name,0,3));
}
 
return $name.$year.date($fmt,$dt);
}

うーん、PHPすごい。

まとめ

今回はちょっとだけコーダーみたいなことを書いてみました。

西暦・和暦問わず、こういう処理って本当に面倒なので、少しでもHP制作が楽になるといいですよね!