首页 > 开发 > php > 正文

PHP如何生成一个指定年份一整年的日历

2017-09-06 15:07:11  来源:网友分享

我想用php生成一段日历的html代码,而且这个日历是可以指定年份自动生成的,网上的代码都过于臃肿,要不就是搞了一个Class来生成,要不就是有一些我不要的功能。

请问有没有精简一点的方法来生成我要的日历呢,就像下面这种

解决方案

<?php  $year = '2013';  $months =  array( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec' );  $days = array( 31,                  (strtotime("1 Mar ".$year) - strtotime("1 Feb ".$year)) / ( 24 * 60 * 60 ),                 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );  $wday = array( '', '', '', '', '', '', '' );  $cal = array();  foreach(range(0, 11) as $i) {    $firstday = getdate(strtotime('1 '.$months[$i].' '.$year));    $fromday = $firstday['wday'];    $leftday =  7 - ( $fromday + $days[$i] ) % 7;    $cal[] = array_merge( array_slice($wday, 0, $fromday),                          range(1, $days[$i]),                          array_slice($wday, 0, $leftday)                        );  }?><?php foreach(range(0, 11) as $i) : ?><table>  <thead>    <tr><th colspan="7"><?php echo $months[$i].' '.$year; ?></th></tr>    <tr><th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th>  </thead>  <tbody>    <tr>    <?php    foreach($cal[$i] as $k => $v) {      if($k && !($k % 7)) echo "</tr><tr>";      echo "<td>{$v}</td>";    }    ?>    </tr>  </tbody></table><?php endforeach ?>