<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Date型⇒和暦表示サンプル</title>
<script>
function test(){
var a = getWarekiYmd();
alert(a);
}
function getWarekiYmd(){
//年号毎の開始日付
var m = new Date(1868,8,8); //1868年9月8日~
var t = new Date(1912,6,30); //1912年7月30日~
var s = new Date(1926,11,25); //1926年12月25日~
var h = new Date(1989,0,8); //1989年1月8日~
var a = new Date(2019,4,1); //2019年5月1日~
//対象日付
var dt = new Date(); //当日の場合
// var dt = new Date(1989,0,7); //日付指定の場合(月は-1してください)
var y = dt.getFullYear();
var mo = ("00" + (dt.getMonth()+1)).slice(-2); //※
var d = ("00" + dt.getDate()).slice(-2); //※
//※ゼロ埋めしたくない場合は以下に置き換えてください。
//var mo = dt.getMonth()+1;
//var d = dt.getDate();
var gen="";
var nen=0;
//元号判定
if(m<=dt && dt<t){
gen = "明治";
nen = (y - m.getFullYear())+1;
}else if(t<=dt && dt<s){
gen = "大正";
nen = (y - t.getFullYear())+1;
}else if(s<=dt && dt<h){
gen = "昭和";
nen = (y - s.getFullYear())+1;
}else if(h<=dt && dt<a){
gen = "平成";
nen = (y - h.getFullYear())+1;
}else if(a<=dt){
gen = "令和";
nen = (y - a.getFullYear())+1;
}else{
gen = "";
}
//1年の場合は"元"に置き換え
if(nen == 1){
nen = "元";
}
//日付生成
var result = gen + nen + "年" + mo + "月" + d + "日";
return result;
}
</script>
</head>
<body>
<input type="button" onclick="test()" value="和暦表示">
</body>
</html>
「本日を和暦表示する」JavaScript(html)の
50行: nen = (y - x.getFullYear())+1; の中の
「x」は「a」のミスプリントではないかと思いますが、
どうでしょうか。
このように修正すると、本日は、令和で表示されます。
(バグ処理の練習用にしてあるのかも知れませんが。)
ご指摘どおりミスプリントでした。
ありがとうございます!
記事を修正させて頂きました。