一、時間戳
1.19701-1-1到現在的秒數,用time()獲取
2.格式化date("y-m-d h:i:s",time()),由於按國際標準,所以預設為倫敦時間
3.更改時區的方法:
a.date("y-m-d h:i:s",time()+8*60*60);//東八區
b.date_default_timezone_set("PRC");再用date
4.將格式化時間轉換為時間戳:
a.mktime(時,分,秒,月,日,年),年月日等數字超出範圍自動轉到下個週期,傳參格式如下:
int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
b.給定規範的格式化時間,使用strtotime($time)來轉換,支援很多格式(詳細見手冊)
c.microtime():返回時間戳至微秒數,主要是用來測試某段指令碼程式的執行所用的時間
二、例項:日曆演算法
注:年月日可以由get傳入也可以預設當前值
date_default_timezone_set(`PRC`);
$year = isset($_GET[`year`]) ? $_GET[`year`] : date(`y`);//當前年
$month = isset($_GET[`month`]) ? $_GET[`month`] : date(`m`);
$day = isset($_GET[`day`]) ? $_GET[`day`] : date(`d`);
//當月的天數
$days=date(`t`,mktime(0,0,0,$month,1,$year));
//獲取當月第一天星期幾
$firstDay=date(`w`,mktime(0,0,0,$month,1,$year));
echo `<table border="1" width="300" align="center">`;
echo `<tr>`;
echo `<th style="background:blue">日</th>`;
echo `<th style="background:blue">一</th>`;
echo `<th style="background:blue">二</th>`;
echo `<th style="background:blue">三</th>`;
echo `<th style="background:blue">四</th>`;
echo `<th style="background:blue">五</th>`;
echo `<th style="background:blue">六</th>`;
echo `</tr>`;
echo `<tr>`;
for($i=0;$i<$firstDay;$i++){
echo `<th> </th>`;
}
$result=``;
for($j=1;$j<$days;$j++){
$i++;
if($j==$day){
$result.=`<th style="background:red">`.$j.`</th>`;
}else{
$result.=`<th>`.$j.`</th>`;
}
if($i%7===0){
$result.=`</tr><tr>`;
}
}
while($i%7!==0){
$result.=`<th> </th>`;
$i++;
}
echo $result;
echo `</tr>`;
echo `</table>`;