忍者ブログ
Admin / Write / Res
ちゃんとカテゴリ分けされておりませんので、 記事をお探しならブログ内検索が便利です。 ご活用くださいませー+.(≧∀≦)゚+.゚
ブログ内検索
カレンダー
10 2024/11 12
S M T W T F S
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
カウンター
アクセスカウンター
最新コメント
[11/22 รูปพวงหรีดแสดงความเสียใจ]
[11/22 ดอกไม้ งานศพ]
[11/22 ช่อดอกไม้ตามสั่ง]
[11/22 ร้านดอกไม้บรรยากาศอบอุ่น]
[11/21 Robertret]
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
バーコード
[643]  [642]  [641]  [640]  [639]  [638]  [637]  [636]  [635]  [634]  [633
普段はオペをしている方がPHPを勉強したいと言って、カレンダーを作っていた。
サンプルにしているソースコードの解釈を手伝っていたのですが、自分で書いたらどうなるだろうと、今回チャレンジしてみました。
つまり、やらなきゃよかったシリーズですね♪

preタグが使えればいいのに・・・


<?php

// HTML処理
$site_title = date("Y年m月のカレンダー");

// カレンダー処理
$week_head = array('<font color="red">日</font>', "月", '火', '水', '木', '金' ,'<font color="blue">土</font>');
$first_day = date("Ym") . "01"; // YYYYMMDD形式
$last_day = date("j", strtotime(date("Y") . date("m") + 1 . "00")); // M形式
$last_u_day = strtotime(date("Y") . date("m") + 1 . "00"); // UNIX time
$cal_head_null = date("w", strtotime($first_day));

$count = 0; $day = 1;
while($last_u_day >= mktime(0, 0, 0, date("m"), $day, date("Y"))){
    $cal_data[] = "<tr>";
    for($i=1; $i<=7; $i++){
        if($count < $cal_head_null){
            $cal_data[] = "<td></td>";
        }elseif($last_day < $day){
            $cal_data[] = "<td></td>";
            $day++;
        }else{
            switch(date("w", mktime(0, 0, 0, date("m"), $day, date("Y")))){
                case 0:
                    $cal_data[] = "<td><font color=\"red\">" . $day . "</font></td>";
                    break;
                case 6:
                    $cal_data[] = "<td><font color=\"blue\">" . $day . "</font></td>";
                    break;
                default:
                    $cal_data[] = "<td><font color=\"black\">" . $day . "</font></td>";
            }
        $day++;
        }
        $count++;
    }
    $cal_data[] = "</tr>";
}

?>


<!DOCTYPE html> 
<html lang="ja"> 
<head> 
<!-- 文字コード指定が簡素に --> 
<meta charset="utf-8"> 
<title><?= $site_title ?></title> 
</head> 
<body> 
<h1><?= $site_title ?></h1>
<table border="1">
    <?php
        echo "<tr>";
        foreach($week_head as $head){
            echo "<td>".$head."</td>";
        }
        echo "</tr>";
        foreach($cal_data as $data){
            echo $data;
        }
    ?>
</table>
</body> 
</html> 

拍手

PR
この記事にコメントする
Name
Title
Color
Mail
URL
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (管理人にのみ表示)
この記事へのトラックバック
この記事にトラックバックする:
Copyright ©  アナログを愛するデジタル生活館 All Rights Reserved.
* material by Pearl Box   * Template by tsukika

忍者ブログ [PR]