[TOC]
## 【時間】相關函數
> [ 時間函數參考](http://php.net/manual/zh/book.datetime.php)
> [ date() 函數](http://www.runoob.com/php/func-date-date.html)
>
### 常用時間函數
Unix 時間戳 :自從 Unix 紀元(格林威治時間 1970 年 1 月 1 日 00:00:00)到當前時間的秒
* time:==>獲得當前時間(精確到秒),結果其實一個“整數”而已,代表從1970年1月1日0:0:0秒到當前時刻的秒數——這通常被稱為“時間戳”【返回一個當前系統的時間戳】
* mktime:==>創建一個時間數據,參數為:時、分、秒,月、日、年(取得一個日期的 Unix 時間戳)【取得一個日期的 Unix 時間戳】
* microtime:==>獲得當前時間(可以精確到微秒),其有兩種使用形式:【當前 Unix 時間戳和微秒數】
* microtime(true):==>返回的是一個小數,但還是秒的值,此時精度只有萬分之秒。
* microtime(false):==>返回的是一個字符串,包括2部分:秒的整數部分,和小數部分。
* date:==>將指定的時間戳,按照制定的格式進行輸出
> date(“當前時間:Y年m月d日 H:i:s”, [time()] );
> date(‘Y-M-D H:I:S’);
* idate:==>取得一個時間的某個單項數據值,比如idate(“Y”)取得年份數
* strtotime:==>將一個字符串“轉換”為時間值;【將任何英文文本的日期時間描述解析為 Unix 時間戳】
* date_default_timezone_set:==>在代碼中設置“時區”
* date_default_timezone_get:==>在代碼中獲取“時區”
## PHP日歷核心程序編寫
```
<?php
$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));
//獲取當月的第一天是星期幾
$startweek = date("w", mktime(0,0,0, $month, 1, $year));
echo "今天是{$year}年{$month}月{$day}日!<br>";
echo '<table border="0" 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<$startweek; $i++) {
echo "<td> </td>";
}
for($j=1; $j <= $days; $j++) {
$i++;
if($j==$day) {
echo "<td style='background:green'>{$j}</td>";
}else{
echo "<td>{$j}</td>";
}
if($i%7 ==0 ){
echo '</tr><tr>';
}
}
while($i%7!==0) {
echo '<td> </td>';
$i++;
}
echo '</tr>';
echo '</table>';
```