猿问

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

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


翻过高山走不出你
浏览 83回答 2
2回答

慕虎7371278

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

扬帆大鱼

$begin&nbsp;=&nbsp;new&nbsp;DateTime(&nbsp;'2016-01-01'&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;$end&nbsp;=&nbsp;(new&nbsp;DateTime(&nbsp;'2016-12-31'&nbsp;))->modify(&nbsp;'+1&nbsp;day'&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;$interval&nbsp;=&nbsp;new&nbsp;DateInterval('P1D');&nbsp;&nbsp;&nbsp;&nbsp;$daterange&nbsp;=&nbsp;new&nbsp;DatePeriod($begin,&nbsp;$interval&nbsp;,$end);&nbsp;&nbsp;&nbsp;&nbsp;foreach($daterange&nbsp;as&nbsp;$date){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$date->format("Y-m-d").&nbsp;"\n"; &nbsp;&nbsp;&nbsp;&nbsp;}
随时随地看视频慕课网APP
我要回答