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