本文目錄一覽:
如何用php做日曆
具體代碼如下:
?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, ”);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?
PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。
它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,
執行效率比完全生成HTML標記的CGI要高許多;
PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
如何用PHP製作日曆
calendar.class.php
代碼如下:
?php
class Calendar {
private $year; //當前的年
private $month; //當前的月
private $start_weekday; //當月的第一天對應的是周幾
private $days; //當前月一共多少天
function __construct(){
$this-year=isset($_GET[“year”]) ? $_GET[“year”] : date(“Y”);
$this-month=isset($_GET[“month”]) ? $_GET[“month”] : date(“m”);
$this-start_weekday=date(“w”, mktime(0, 0, 0, $this-month, 1, $this-year));
$this-days=date(“t”, mktime(0, 0, 0, $this-month, 1, $this-year));
}
function out(){
echo ‘table align=”center”‘;
$this-chageDate(“test.php”);
$this-weeksList();
$this-daysList();
echo ‘/table’;
}
private function weeksList(){
$week=array(‘日’,’一’,’二’,’三’,’四’,’五’,’六’);
echo ‘tr’;
for($i=0; $icount($week); $i++)
echo ‘th class=”fontb”‘.$week[$i].’/th’;
echo ‘/tr’;
}
private function daysList(){
echo ‘tr’;
//輸出空格(當前一月第一天前面要空出來)
for($j=0; $j$this-start_weekday; $j++)
echo ‘td /td’;
for($k=1; $k=$this-days; $k++){
$j++;
if($k==date(‘d’))
echo ‘td class=”fontb”‘.$k.’/td’;
else
echo ‘td’.$k.’/td’;
if($j%7==0)
echo ‘/trtr’;
}
//後面幾個空格
while($j%7!==0){
echo ‘td /td’;
$j++;
}
echo ‘/tr’;
}
private function prevYear($year, $month){
$year=$year-1;
if($year 1970)
$year = 1970;
return “year={$year}month={$month}”;
}
private function prevMonth($year, $month){
if($month == 1) {
$year = $year -1;
if($year 1970)
$year = 1970;
$month=12;
}else{
$month–;
}
return “year={$year}month={$month}”;
}
private function nextYear($year, $month){
$year = $year + 1;
if($year 2038)
$year = 2038;
return “year={$year}month={$month}”;
}
private function nextMonth($year, $month){
if($month==12){
$year++;
if($year 2100)
$year=2100;
$month=1;
}else{
$month++;
}
return “year={$year}month={$month}”;
}
private function chageDate($url=””){
echo ‘tr’;
echo ‘tda href=”?’.$this-prevYear($this-year, $this-month).'”‘.”.’/a/td’;
echo ‘tda href=”?’.$this-prevMonth($this-year, $this-month).'”‘.”.’/a/td’;
echo ‘td colspan=”3″‘;
echo ‘form’;
echo ‘select name=”year” onchange=”window.location=”.$url.’?year=’+this.options[selectedIndex].value+’month=’.$this-month.””‘;
for($sy=1970; $sy = 2100; $sy++){
$selected = ($sy==$this-year) ? “selected” : “”;
echo ‘option ‘.$selected.’ value=”‘.$sy.'”‘.$sy.’/option’;
}
echo ‘/select’;
echo ‘select name=”month” onchange=”window.location=”.$url.’?year=’.$this-year.’month=’+this.options[selectedIndex].value”‘;
for($sm=1; $sm=12; $sm++){
$selected1 = ($sm==$this-month) ? “selected” : “”;
echo ‘option ‘.$selected1.’ value=”‘.$sm.'”‘.$sm.’/option’;
}
echo ‘/select’;
echo ‘/form’;
echo ‘/td’;
echo ‘tda href=”?’.$this-nextYear($this-year, $this-month).'”‘.”.’/a/td’;
echo ‘tda href=”?’.$this-nextMonth($this-year, $this-month).'”‘.”.’/a/td’;
echo ‘/tr’;
}
}
?
test.php
代碼如下:
style
table {
border:1px solid #050;
}
.fontb {
color:white;
background:blue;
}
th {
width:30px;
}
td,th {
height:30px;
text-align:center;
}
form {
margin:0px;
padding:0px;
}
/style
?php
include “calendar.class.php”;
$calendar=new Calendar;
$calendar-out();
?
PHP如何生成一個指定年份一整年的日曆
從你的描述看來,只需要知道指定年份的每個月的天數和每天對應的周次即可。
PHP中 Calendar 函數可以實現第一步:
int cal_days_in_month ( int $calendar , int $month , int $year )
剩下的就是寫循環遍歷所有月,按月生成日曆了。
原創文章,作者:YIMZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145139.html