現(xiàn)在以2010年6月14日為例說明。6月份共有30天,在這個日歷表中共5行,首先需要確定當前所在的日期(當然也可以指定一個日期),比如14日,通過表格可以知道它在第3行對應星期一那列(第3周)。通常每個月第1天不是在表格開始的位置,位置并不固定,同樣不固定的還有每個月的周數(shù),有時候是4周,有時候是5周。這樣,想要完成這個日歷表格就需要確定一些基礎的日期變量,下面具體來看需要設定的基礎變量。
成都創(chuàng)新互聯(lián)公司是一家專注于成都做網站、網站設計與策劃設計,垣曲網站建設哪家好?成都創(chuàng)新互聯(lián)公司做網站,專注于網站建設十年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:垣曲等地區(qū)。垣曲做網站價格咨詢:18980820575
PHP提供了date()函數(shù),該函數(shù)提供了豐富的日期處理功能?,F(xiàn)在需要獲得的數(shù)據(jù)有兩個,第一個是當月的總天數(shù);第二個是該月的第一天所在星期中的第幾天,數(shù)字表示0(表示星期天)到6(表示星期六)。通過date()函數(shù)可以很容易獲得上面的數(shù)據(jù)。
?php
//date()函數(shù)的基本用法
$year = date('Y'); //獲得年份,例如2006
$month = date('n'); //獲得月份,例如04
$day = date('j'); //獲得日期,例如3
?
通過mktime()函數(shù)和date()函數(shù)獲得當月的總天數(shù)。
//獲得當月的總天數(shù)
$daysInMonth = date("t",mktime(0,0,0,$month,1,$year));
同樣是組合使用mktime()函數(shù)和date()函數(shù),獲得該月的第一天所在星期中的第幾天,數(shù)字表示0(表示星期天)到6(表示星期六)。
//獲得每個月的第一天,例如4
$firstDay = date("w", mktime(0,0,0,$month,1,$year));
現(xiàn)在重新來觀察下這個日歷表格,我們發(fā)現(xiàn),表格中的值是從1到x(當月的總天數(shù))。我們可以形象地通過一個坐標來表示每一個位置(x,y),表格的起始位置是(0,0),結束位置是(5,4),當月第一天的起始位置是(0,3)。現(xiàn)在來創(chuàng)建一個二維數(shù)組來存儲對應的日期。
(1)需要獲得表格的數(shù)目。
//計算數(shù)組中的日歷表格數(shù)
$tempDays = $firstDay + $daysInMonth;
(2)需要算出該月一共有幾周(即表格的行數(shù))。
//獲得表格行數(shù)
$weeksInMonth = ceil($tempDays/7);
(3)在獲得行數(shù)的變量之后,創(chuàng)建一個二維數(shù)組用來存放日期信息,代碼如下:
?php
for($j=0;$j$weeksInMonth;$j++)
{
for($i=0;$i7
;$i++)
{
$counter ++;
$week [$j] [$i] = $counter;
}
}
?
(4)細心的讀者可能發(fā)現(xiàn),上面的代碼其實是一個雛型,因為它處理出來的數(shù)據(jù)并沒有過濾那些空白的表格單元。下面來繼續(xù)改造下這段代碼,加入過濾和構造的部分。改造后的代碼如下:
?php
//創(chuàng)建日期二維數(shù)組
for($j = 0; $j $weeksInMonth; $j ++) {
for($i = 0; $i 7; $i ++) {
$counter ++;
$week [$j] [$i] = $counter;
//日期偏移量
$week [$j] [$i] -= $firstDay;
if (($week [$j] [$i] 1) || ($week [$j] [$i] $daysInMonth)) {
$week [$j] [$i] = "";
}
}
}
?
(5)在獲得正確的二維數(shù)組之后,就可以通過foreach()函數(shù)將存儲的日期信息遍歷出來,同時插入HTML標簽創(chuàng)建日期
不知是否正確,轉自我的一個朋友
1、在控件下面或右面彈出日歷組件默認是在下面彈出。
2、通過按鈕或圖片等其它控件彈出日歷組件。
3、顯示日期的2種格式。
4、在文本框設置自己需要的時間的日期。
進入php源程序目錄中的ext目錄中,這里存放著各個擴展模塊的源代碼,選擇你需要的模塊,比如curl模塊:cd curl執(zhí)行phpize生成編譯文件!
phpize在PHP安裝目錄的bin目錄/usr/local/php5/bin/phpize運行時,
可能會報錯:Cannot find autoconf. Please check your autoconf installation andthe $PHP_AUTOCONFenvironment variable is set correctly and then rerun thisscript.,需要安裝autoconf:yum install autoconf(RedHat或者CentOS)、apt-get installautoconf(Ubuntu Linux)!
執(zhí)行/usr/local/php5/bin/php -v這個命令時,php會去檢查配置文件是否正確,
如果有配置錯誤,這里會報錯,可以根據(jù)錯誤信息去排查!
?php
//SKY8G提供
function cal_days_in_year($year){
$days=0;
for($month=1;$month=12;$month++){
$days = $days + cal_days_in_month(CAL_GREGORIAN,$month,$year);
}
return $days;
}
//閏年
echo "這是閏年一年有:".cal_days_in_year(2000)."天";
echo "\n";
//平年
echo "這是平年一年有:".cal_days_in_year(1999)."天";
echo "\n";
//2019年
echo "今年2019年有:".cal_days_in_year(date('Y',time()))."天";
echo "\n";
//接下來我們是用php的內置函數(shù)cal_days_in_month()
$d=cal_days_in_month(CAL_GREGORIAN,2,2010);
echo "2010 年平年 2 月有 $d 天。\n";
$d=cal_days_in_month(CAL_GREGORIAN,2,2000);
echo "2000 年閏年 2 月有 $d 天。";
echo "\n";
$d=cal_days_in_month(CAL_GREGORIAN,4,2010);
echo "2010 年平年 4 月有 $d 天。\n";
$d=cal_days_in_month(CAL_GREGORIAN,4,2000);
echo "2000 年閏年 4 月有 $d 天。";
echo "\n";
$d=cal_days_in_month(CAL_GREGORIAN,8,2010);
echo "2010 年平年 8 月有 $d 天。\n";
$d=cal_days_in_month(CAL_GREGORIAN,8,2000);
echo "2000 年閏年 8 月有 $d 天。";
//詳情如果想了解詳情去sky8g網觀看,希望對你有幫助!