date() 函数用于格式化时间,返回一个字符串。
/*
* 可选参数 timestamp 表示时间戳,默认为 time(),即当前时间戳。
*/
string date( string format [, int timestamp] )
//显示格式 2020-12-08
date("Y-m-d",time());
//显示格式 2020.12.08
date("Y.m.d",time());
//显示格式 Dec 08 2020
date("M d Y",time());
//显示格式 2020-12-08 20:01
date("Y-m-d H:i",time());
format 时间格式化方式
格式化方式 | 说明 |
Y | 4 位数字年,y 为 2 位数字,如 99 即 1999 年。 |
m | 数字月份,前面有前导 0,如 01。n 为无前导 0 数字月份。 |
F | 月份,完整的文本格式,例如 January 或者 March。 |
M | 三个字母缩写表示的月份,例如 Jan 或者 Mar。 |
d | 月份中的第几天,前面有前导 0,如 03。j 为无前导 0 的天数。 |
w | 星期中的第几天,以数字表示,0 表示星期天。 |
z | 年份中的第几天,范围0-366。 |
W | 年份中的第几周,如第 32 周。 |
H | 24 小时格式,有前导 0,h 为 12 小时格式。 |
G | 24 小时格式,无前导 0,g 为对应 12 小时格式。 |
i | 分钟格式,有前导 0。 |
s | 秒格式,有前导 0。 |
A | 大写上下午,如 AM,a 为小写。 |
PHP 设置:如果输出的时间和实际时间差8个小时(假设采用的北京时区)的话,检查 php.ini 文件,做如下设置:date.timezone = PRC。
时间戳虽然看起来不太直观,但在对时间做计算时却很方便。例如要计算时间差,或者对两个时间做比较等,直接比较数字即可而不必分别去考虑年月日时分秒的换算。而且在效率上时间戳作为整型数据也会快得多。
要求用户在登陆网站一定时间后失效而需要重新登录的例子:
<?php
$expiration = $time() + 2*3600; //得到当前时间延迟2小时候的时间戳
//失效验证代码略
?>
那么只需要用户在活动期间将当前时间戳与 $expiration 进行比较,如果大于 $expiration 则要求用户重新登录。
计算当前页面执行时间的例子:
<?php
//执行代码
sleep(5);
//执行代码
$running_times = time() - $_SERVER['REQUEST_TIME'];
echo '页面运行时间:'.$running_times.'秒'; //页面运行时间:5秒
?>
$_SERVER['REQUEST_TIME'] 是 PHP 内置的当前页面开始运行时的时间戳,在当前页面运行结束时将 time() - $_SERVER['REQUEST_TIME'] 得到的就是当前页面运行的时间(秒)。