お世話になります。
現在PHPでカレンダーを作っていて、土日に青赤と色をつけたいと思って試行錯誤したのですが、自分の力ではどうになりそうでないので質問させていただきます。
実現したい事
PHPカレンダーで土日の日だけに色を付けたい
コード
PHP
1コード 2<?php 3// カレンダーを表示する年を指定する 4$year = 2019; 5 6// 年始のタイムスタンプを取得 7$timestamp = strtotime("{$year}-01-01 00:00:00"); 8$weekday = 0; 9?> 10 11<!DOCTYPE html> 12<html lang="ja"> 13<head> 14<meta charset="utf-8"> 15<title>カレンダーを作成する</title> 16</head> 17<body> 18<main> 19 <?php for( $i=1; $i<=12; $i++): ?> 20 <table> 21 <caption><?php echo $i; ?>月</caption> 22 <thead> 23 <tr> 24 <th>日</th><th>月</th><th>火</th><th>水</th> 25 <th>木</th><th>金</th><th>土</th> 26 </tr> 27 </thead> 28 <tbody> 29 <?php 30 // 開始日を取得 31 $start_day_timestamp = mktime(0,0,0,$i,1,$year); 32 33 // 末日を取得 34 $end_day_timestamp = mktime(0,0,0,($i+1),0,$year); 35 $end_day = date("d", $end_day_timestamp); 36 37 //1日から月末までを表示する処理 38 for( $j=1; $j <= $end_day; $j++ ) { 39 40 if( $j === 1 ) { 41 42 echo '<tr>'; 43 44 $weekday = date("w", $start_day_timestamp); 45 46 for( $k=0; $k<$weekday; $k++ ) { 47 echo '<td></td>'; 48 } 49 } 50 51 52 echo '<td>'.$j.'</td>'; 53 $weekday++; 54 55 if( 6 < $weekday ) { 56 echo '</tr><tr>'; 57 $weekday = 0; 58 } 59 60 // if($weekday = date("w" == 0)) { 61 // $style = 'color: red;'; 62 // } else { 63 // $style = 'color: #222;'; 64 // } 65 } 66 ?> 67 </tbody> 68 </table> 69 <?php endfor; ?> 70</main> 71</body> 72</html>
localhostでの表示内容
試した事
コード内終盤のこの処理で日付として宣言した$weekdayの”w”が0だったら色を赤にするという事を試してみたですが、スタイルが適用されなかったです。
また、if文内の$weekdayを上のfor文で使われている$kや$jにもしてみたのですが、同じようにスタイルは適用されなかったです。
php
1// if($weekday = date("w" == 0)) { 2// $style = 'color: red;'; 3// } else { 4// $style = 'color: #222;'; 5// }
こんな感じです。
質問の仕方に不満があれば申し訳ないです。
わかる方がいらっしれば、ご教授の方よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー