PHPで和暦を西暦に変換したり、西暦を和暦に変換したりすることがあると思います。
何か良いプログラムはないかと思い探していたところgistに上がっていたので紹介します。
PHPで西暦⇔和暦変換するプログラム
今年は、天皇陛下が退位して、新元号になる年なので、新元号に対応したソースをフォークして作成してみました。
PHPで西暦⇔和暦変換(新元号対応)
新元号がまだ、発表されていないので、その辺りは、適当なのですが、ちょこっとだけいじってみました。
新元号になったら手直ししようと思います。
まとめ
今まで、私自身は、西暦⇔和暦変換をする機会というのはなかったのですが、汎用的に利用できるプログラムだなと思って、紹介させていただきました。
PHPで、西暦⇔和暦変換をする機会のある方は、参考にしてください。
コメント
参考になる記事ありがとうございます。
var_dump(convJtGDate(“昭和56年12月32日”));
12月32日という存在しない日があるのはなぜでしょうか?
コメントありがとうございます。
このプログラムでは、ある一定の条件を見たなさない値が入力値としてきた場合、その元号⇄西暦は変換できないよという意味でfalseを返しています。
昭和56年12月32日も実際にない日にちなのでfalseが戻り値として戻ります。
このプログラムでは対応していない嘉永などもfalseの帰ってくる元号です。
入力値の月が1月の場合は、01と入力しないとこのプログラムではfalseを戻すわけですが、
入力値がfalseで戻ってきた場合は、誤った計算をして元号対応していないよう、入力が間違っているよとわかるようにfalseを返しています。
その例として、
var_dump(convJtGDate(“昭和56年12月32日”));
のような実際に存在しない日付も記載しています。
42行目は”新元”→”令和”に直し忘れではないでしょうか?
お世話になっております。
間違いです。修正いたしました。
ご指摘ありがとうございます。