PHP簡(jiǎn)單創(chuàng)建日歷的方法
本文實(shí)例講述了PHP簡(jiǎn)單創(chuàng)建日歷的方法。分享給大家供大家參考,具體如下:
<?php
function build_calendar($month,$year) {
// Create array containing abbreviations of days of week.
$daysOfWeek = array('S','M','T','W','T','F','S');
// What is the first day of the month in question?
$firstDayOfMonth = mktime(0,0,0,$month,1,$year);
// How many days does this month contain?
$numberDays = date('t',$firstDayOfMonth);
// Retrieve some information about the first day of the
// month in question.
$dateComponents = getdate($firstDayOfMonth);
// What is the name of the month in question?
$monthName = $dateComponents['month'];
// What is the index value (0-6) of the first day of the
// month in question.
$dayOfWeek = $dateComponents['wday'];
// Create the table tag opener and day headers
$calendar = "<table class='calendar'>";
$calendar .= "<caption>$monthName $year</caption>";
$calendar .= "<tr>";
// Create the calendar headers
foreach($daysOfWeek as $day) {
$calendar .= "<th class='header'>$day</th>";
}
// Create the rest of the calendar
// Initiate the day counter, starting with the 1st.
$currentDay = 1;
$calendar .= "</tr><tr>";
// The variable $dayOfWeek is used to
// ensure that the calendar
// display consists of exactly 7 columns.
if ($dayOfWeek > 0) {
$calendar .= "<td colspan='$dayOfWeek'> </td>";
}
$month = str_pad($month, 2, "0", STR_PAD_LEFT);
while ($currentDay <= $numberDays) {
// Seventh column (Saturday) reached. Start a new row.
if ($dayOfWeek == 7) {
$dayOfWeek = 0;
$calendar .= "</tr><tr>";
}
$currentDayRel = str_pad($currentDay, 2, "0", STR_PAD_LEFT);
$date = "$year-$month-$currentDayRel";
$calendar .= "<td class='day' rel='$date'>$currentDay</td>";
// Increment counters
$currentDay++;
$dayOfWeek++;
}
// Complete the row of the last week in month, if necessary
if ($dayOfWeek != 7) {
$remainingDays = 7 - $dayOfWeek;
$calendar .= "<td colspan='$remainingDays'> </td>";
}
$calendar .= "</tr>";
$calendar .= "</table>";
return $calendar;
}
//調(diào)用方法
echo build_calendar(05,2016);
?>
運(yùn)行結(jié)果如下圖所示:

關(guān)于在線顯示日期還可參考本站在線工具:
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php日期與時(shí)間用法總結(jié)》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
解決Laravel5.x的php artisan migrate數(shù)據(jù)庫(kù)遷移創(chuàng)建操作報(bào)錯(cuò)SQLSTATE[42000]
這篇文章主要介紹了解決Laravel5.x的php artisan migrate數(shù)據(jù)庫(kù)遷移創(chuàng)建操作報(bào)錯(cuò)SQLSTATE[42000],需要的朋友可以參考下2020-04-04
php實(shí)現(xiàn)SAE上使用storage上傳與下載文件的方法
這篇文章主要介紹了php實(shí)現(xiàn)SAE上使用storage上傳與下載文件的方法,實(shí)例分析了基于SaeStorage類(lèi)實(shí)現(xiàn)文件傳輸?shù)募记?需要的朋友可以參考下2015-06-06
PHP面向接口編程 耦合設(shè)計(jì)模式 簡(jiǎn)單范例
了解些面向?qū)ο蟮闹R(shí),自己寫(xiě)了段代碼測(cè)試一下,歡迎高手指點(diǎn)2011-03-03
PHP CURL實(shí)現(xiàn)模擬登陸并上傳文件操作示例
這篇文章主要介紹了PHP CURL實(shí)現(xiàn)模擬登陸并上傳文件操作,結(jié)合實(shí)例形式分析了PHP使用curl進(jìn)行模擬登陸與文件傳輸操作具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-01-01

