つい先程、和暦を西暦に変換する関数を書きましたが、その逆変換も勢いに乗って。
これも全く難しいことはありません。元号と年を単純に判定してるだけです。
引数をどうしようかと迷いましたが、4つに分けた形式にしました。引数の『gengou』には、1~4までの数値を入れてください。順に1は明治、2は大正、3は昭和、4は平成です。
function toSeireki(gengou,year,month,day){
if ((gengou == "4") && (year > 0)){
seireki = 1988 + parseInt(year);
}else if((gengou == "3") && (year > 0) && (year < 65)){
seireki = 1925 + parseInt(year);
}else if((gengou == "2") && (year > 0) && (year < 16)){
seireki = 1911 + parseInt(year);
}else if((gengou == "1") && (year > 0) && (year < 46)){
seireki = 1867 + parseInt(year);
}else{
seireki = parseInt(year);
}
return seireki + '年' + month + "月" + day + "日";
}
4つあるifの『gengou == "4"』の部分を『gengou == "平成"』と変えれば、第1引数『gengou』に漢字での元号を入れるようにも出来ます。
第3引数の月、第4引数の日は、返り値のためだけにあります。和暦で年を間違えるなんてあまりないと思うので。(厳密にやる場合にはそこも必要なのでご注意を。)
これもコピーペーストで・・・使えますかね? まあWikipediaを調べなくてもいいということで(笑)
もしかすると引数は作るスクリプトによって若干変更した方が使いやすいかもしれません。
本来はこの関数を実行する直前に、日時の正当性チェックをした方がいいですね。それはまたいずれ。