西暦和暦変換

西暦から和暦に変換する関数です。
$year = 1905;
$month = 11;
$day = 22;
$wareki = toJpDate($year, $month, $day);
echo $wareki;
で和暦が表示されます。
1801年の享和から平成までを変換できるようにしました!

デモサイトで確認できます!


スポンサーリンク

デモサイト

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
 
//西暦和暦変換
function toJpDate ($year, $month, $day) {
 
	if (!checkdate($month, $day, $year) || $year < 1800) {
    	return false;
  	}
 
  	$date = (int) sprintf('%04d%02d%02d', $year, $month, $day);
 
	if ($date >= 19890108) {  // 1989年1月8日から平成
    $era = '平成';
	$jpYear = $year - 1988;
  } elseif ($date >= 19261225) {  // 1926年12月25日から昭和
    $era = '昭和';
    $jpYear = $year - 1925;
  } elseif ($date >= 19120730) {  // 1912年7月30日から大正
    $era = '大正';
    $jpYear = $year - 1911;
  } elseif ($date >= 18680125){  // 1868年1月25日から明治
    $era = '明治';
    $jpYear = $year - 1867;
  } elseif ($date >= 18650407){  // 1865年4月7日から慶応
    $era = '慶応';
    $jpYear = $year - 1864;
  } elseif ($date >= 18640220){  // 1864年2月20日から元治
    $era = '元治';
    $jpYear = $year - 1863;
  } elseif ($date >= 18610219){  // 1861年2月19日から文久
    $era = '文久';
    $jpYear = $year - 1860;
  } elseif ($date >= 18600318){  // 1860年3月18日から万延
    $era = '万延';
    $jpYear = $year - 1859;
  } elseif ($date >= 18541127){  // 1854年11月27日から安政
    $era = '安政';
    $jpYear = $year - 1853;
  } elseif ($date >= 18480228){  // 1848年2月28日から嘉永
    $era = '嘉永';
    $jpYear = $year - 1847;
  } elseif ($date >= 18441202){  // 1844年12月2日から弘化
    $era = '弘化';
    $jpYear = $year - 1843;
  } elseif ($date >= 18301210){  // 1830年12月10日から天保
    $era = '天保';
    $jpYear = $year - 1829;
  } elseif ($date >= 18180422){  // 1818年4月22日から文政
    $era = '文政';
    $jpYear = $year - 1817;
  } elseif ($date >= 18040211){  // 1804年2月11日から文化
    $era = '文化';
    $jpYear = $year - 1803;
  } elseif ($date >= 18010205){  // 1801年2月5日から享和
    $era = '享和';
    $jpYear = $year - 1800;
  } else {
	  $era = '寛政';
	  $jpYear = $year - 1789;
  }
 
  if ($jpYear == 1) {
    $wareki = $era . '元年';
  } else {
    $wareki = $era . $jpYear . '年';
  }
  return $wareki . $month . '月' . $day . '日';
}
 
?>
Pocket
LINEで送る

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です