본문으로 바로가기

서기를 단기로 표현하고 싶을 때

category 웹코딩/PHP 2016. 9. 26. 09:00


  서기 연월일에 단군 기원년도 2333년을 더하면 서기를 간단하게 단기로 변환할 수 있습니다.


● 서기를 단군 기원으로 변환하기

<head>
<meta charset="UTF-8">
<title>날짜를 단기로 표기로 하고 싶을 때</title>
</head>
<body>
<div>
<?php
$year = 2016;
$month = 10;
$day = 1;
echo '<p>서기: ' . $year . '/' . $month . '/' . $day . '</p>';
$ret = toOldKoreanDate($year, $month, $day);
if ($ret !== false) {
  echo '<p>단기: ' . $ret . '</p>';
} else {
  echo '<p>잘못된 년월일입니다</p>';
}

// toOldKoreanDate() 함수
// 서기를 단기로 변환합니다. 단, 이 함수는 기원전의
// 날짜를 변환할 수 없습니다. 인수에는 서기의 연, 월, 일을 지정합니다.
function toOldKoreanDate($year, $month, $day)
{
// 잘못된 연월일, 1872년 이전이 지정된 경우 false를 돌려줍니다.
  if (! checkdate($month, $day, $year) || $year < 1) {
    return false;
  }

// 서기를 YYYYMMDD 형식의 수치로 변환합니다.
  $date = (int) sprintf('%04d%02d%02d', $year, $month, $day);

// 날짜 수치에서 연호와 단기를 구합니다.
  if ($date >= 00010101) {  // 1년 1월 1일부터

    $localYear = $year + 2333;
  }

// ○년 ○월 ○일과 같이 서식을 조정합니다.

    $wareki = $localYear . '년';

    return $wareki . $month . '월' . $day . '일';
}
?>
</div>
</body>
</html>
   


결과화면