旧暦、六曜を取得できるAPIを無料で提供しています。
■ 暦APIを使用したサンプルを2例ご紹介いたします。
1: 日めくりのカレンダーにしてみました。



12

16
先負
令和3年
28

01
睦月
・ソース koyomiD.php
<?php
date_default_timezone_set('Asia/Tokyo');
$api = 'http://koyomi.zing2.org/api/';
 $param = array(
 	 'mode' => "d"
 	,'cnt'  => "1"
 	,'targetyyyy' => date("Y")
 	,'targetmm' => date("m")
 	,'targetdd' => date("d")
);
$ch = curl_init($api);

## パラメータを設定
curl_setopt($ch, CURLOPT_URL, $api);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));

## 結果を取得
$result = curl_exec($ch);
## コネクション切断
curl_close($ch);

## 連想配列にデコード
$data = json_decode($result, true);
## データ取得
$date = $data{'datelist'}{date("Y-m-d")};
## 曜日から文字色決定
if($date{'week'} === "日"){
	$color="#FF0000";
}
else if($date{'week'} === "土"){
	$color="#0000CC";
}
else if($date{'holiday'} !== ""){
	$color="#FF0000";
}
else{
	$color="#000000";
}
?>
<table style="border: 1px #666666 solid; border-collapse:collapse; font-color: #111111;"><tbody>
	<tr><td colspan="3" height="10" style="background-color:#666666"></td></tr>
	<tr><td>
		<table><tbody>
		<tr><td width="15"  style="line-height: 1em; aling:center; font-size: 20px;color: <?php echo($color) ?>;">
			<?php echo(mb_convert_encoding("<br>" . $date{'week'} ."<br>"."曜","cp932", "UTF-8")) ?>
		</td></tr>
		<tr><td width="15" style="line-height: 1em;aling:center;color: <?php echo($color) ?>; font-size: 10px;">
			<?php echo(mb_convert_encoding("旧<br>" .  $date{'kyurekim'}."<br>月<br>".$date{'kyurekid'} . "<br>日","cp932", "UTF-8")) ?>
		</td></tr>
		<tr><td width="15" style="aling:center">
			<table><tbody>
			<tr>
				<td width="5" style="line-height: 1em;color: <?php echo($color) ?>;"><?php echo(mb_convert_encoding($date{'sekki'},"cp932", "UTF-8")) ?></td>
				<td width="5" style="line-height: 1em;color: <?php echo($color) ?>;"><?php echo(mb_convert_encoding($date{'rokuyou'},"cp932", "UTF-8")) ?></td>
				<td width="5" style="line-height: 1em;color: <?php echo($color) ?>;"><?php echo(mb_convert_encoding($date{'zyusi'} . "<br>" . $date{'zyunisi'},"cp932", "UTF-8")) ?></td>
			</tr>
			</tbody></table>
		</td></tr>
		</tbody></table>
	</td>
	<td>
		<table><tbody>
		<tr><td style="color: <?php echo($color) ?>;"><?php echo(mb_convert_encoding($date{'gengo'}.$date{'wareki'} ."年","cp932", "UTF-8")) ?></td></tr>
		<tr><td style="font-size: 60px;color: <?php echo($color) ?>;"><?php echo(date("d")) ?></td></tr>
		<tr><td style="color: <?php echo($color) ?>;"><?php echo(mb_convert_encoding( $date{'holiday'},"cp932", "UTF-8")) ?></td></tr>
		</tbody></table>
	</td>
	<td>
		<table><tbody>
		<tr><td width="15" style="line-height: 1em;color: <?php echo($color) ?>; font-size: 10px;"><?php echo(mb_convert_encoding("<br>" .date("m")."<br>月","cp932", "UTF-8")) ?></td></tr>
		<tr><td width="12" style="line-height: 1em;color: <?php echo($color) ?>; font-size: 10px;"><?php echo(mb_convert_encoding( $date{'inreki'},"cp932", "UTF-8")) ?></td></tr>
		</tbody></table>
	</td></tr>
</tbody></table>
				
2: 月めくりのカレンダーにしてみました。
01月
01
旧11月18日

仏滅
己酉
元日
02
旧11月19日

大安
庚戌
03
旧11月20日

赤口
辛亥
04
旧11月21日

先勝
壬子
05
旧11月22日
小寒
友引
癸丑
06
旧11月23日

先負
甲寅
07
旧11月24日

仏滅
乙卯
08
旧11月25日

大安
丙辰
09
旧11月26日

赤口
丁巳
10
旧11月27日

先勝
戊午
11
旧11月28日

友引
己未
成人の日
12
旧11月29日

先負
庚申
13
旧12月1日

赤口
辛酉
14
旧12月2日

先勝
壬戌
15
旧12月3日

友引
癸亥
16
旧12月4日

先負
甲子
17
旧12月5日

仏滅
乙丑
18
旧12月6日

大安
丙寅
19
旧12月7日

赤口
丁卯
20
旧12月8日
大寒
先勝
戊辰
21
旧12月9日

友引
己巳
22
旧12月10日

先負
庚午
23
旧12月11日

仏滅
辛未
24
旧12月12日

大安
壬申
25
旧12月13日

赤口
癸酉
26
旧12月14日

先勝
甲戌
27
旧12月15日

友引
乙亥
28
旧12月16日

先負
丙子
29
旧12月17日

仏滅
丁丑
30
旧12月18日

大安
戊寅
31
旧12月19日

赤口
己卯
・ソース koyomiM.php
<?php
date_default_timezone_set('Asia/Tokyo');
$api = 'http://koyomi.zing2.org/api/';
 $param = array(
 	 'mode' => "m"
 	,'cnt'  => "1"
 	,'targetyyyy' => date("Y")
 	,'targetmm' => date("m")
 	,'targetdd' => date("d")
);
$ch = curl_init($api);

## パラメータを設定
curl_setopt($ch, CURLOPT_URL, $api);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));
## 結果を取得
$result = curl_exec($ch);
## コネクション切断
curl_close($ch);

## 連想配列にデコード
$data = json_decode($result, true);

## 月初日
$starttimestamp_date = date("Y") . "-" . date("m") . "-01";
## 翌月初日
$stoptimestamp_date = date("Y-m-d", strtotime($starttimestamp_date . " 1 month"  ));
$w = date( 'w',strtotime( $starttimestamp_date ));
## 月曜はじまりの場合
if( $w === "0"){
	$w = 7;
}
## 日曜はじまりの場合
#$w = $w + 1;

$cell = 0;
?>
<table style="border: 1px #666666 solid; border-collapse:collapse; font-color: #111111;"><tbody>
	<tr>
		<td style="border: 1px solid gray;font-size: 10px;color: #000000;"><?php echo(mb_convert_encoding("月","cp932", "UTF-8")) ?></td>
		<td style="border: 1px solid gray;font-size: 10px;color: #000000;"><?php echo(mb_convert_encoding("火","cp932", "UTF-8")) ?></td>
		<td style="border: 1px solid gray;font-size: 10px;color: #000000;"><?php echo(mb_convert_encoding("水","cp932", "UTF-8")) ?></td>
		<td style="border: 1px solid gray;font-size: 10px;color: #000000;"><?php echo(mb_convert_encoding("木","cp932", "UTF-8")) ?></td>
		<td style="border: 1px solid gray;font-size: 10px;color: #000000;"><?php echo(mb_convert_encoding("金","cp932", "UTF-8")) ?></td>
		<td style="border: 1px solid gray;font-size: 10px;color: #0000CC;background-color:#ccffff;"><?php echo(mb_convert_encoding("土","cp932", "UTF-8")) ?></td>
		<td style="border: 1px solid gray;font-size: 10px;color: #FF0000;background-color:#ffeeff;"><?php echo(mb_convert_encoding("日","cp932", "UTF-8")) ?></td>
	</tr>
	<tr>
	<?php
		## カレンダー最初の空白部分
		for($i =1;$i < $w;$i++){
	?>
		<td style="border: 1px solid gray;"></td>
	<?php } ?>
	<?php
		## 日付部分
		for($i =$starttimestamp_date;$i < $stoptimestamp_date;$i=date("Y-m-d", strtotime($i . " 1 day"  ))){
			$date = $data{'datelist'}{$i};
			if($date{'week'} === "日"){
				$color="#FF0000";
			}
			else if($date{'week'} === "土"){
				$color="#0000CC";
			}
			else if($date{'holiday'} !== ""){
				$color="#FF0000";
			}
			else{
				$color="#000000";
			}
	?>
		<?php
			if($cell === 0){
				$cell = $w;
			}elseif($cell === 1){
		?>
		<tr>
		<?php }?>
			<td style="border: 1px solid gray;color: <?php echo($color) ?>;">
				<span style="font-size: 20px;"><?php echo(date("d", strtotime($i))) ?></span><br>
				<span style="font-size: 8px;"><?php echo(mb_convert_encoding("旧" .  $date{'kyurekim'}."月".$date{'kyurekid'} . "日","cp932", "UTF-8")) ?></span><br>
				<?php echo(mb_convert_encoding($date{'sekki'},"cp932", "UTF-8")) ?><br>
				<?php echo(mb_convert_encoding($date{'rokuyou'},"cp932", "UTF-8")) ?><br>
				<?php echo(mb_convert_encoding($date{'zyusi'} . "" . $date{'zyunisi'},"cp932", "UTF-8")) ?><br>
				<?php echo(mb_convert_encoding( $date{'holiday'},"cp932", "UTF-8")) ?>
			</td>
		<?php
			if($cell === 7){
				$cell = 1;
		?>
			</tr>
		<?php
		 }else{
			++$cell;
		 }
		 ?>
	<?php } ?>

</tbody></table>
				

  Copyright 2015 All rights reserved.