[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>';
```