[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>&nbsp;</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>&nbsp;</td>'; $i++; } echo '</tr>'; echo '</table>'; ```