PHP函数:日期和时间函数的使用方法
日期和时间是我们日常生活中不可避免的要素,同样在web开发中也是重要的组成部分。PHP作为一种服务器端语言,对处理时间和日期也提供了很多实用的函数。本文就来介绍一些常用的日期和时间函数以及它们的使用方法。
date()函数
date()函数可以用于将时间戳(Unix时间)转换为日期格式,也可以用于输出当前日期。date()函数的基本用法如下:
date(format, timestamp)
其中,format参数是必填的,用于设置输出的日期格式;timestamp参数可选,代表要转换的时间戳,默认为当前时间。
常见的日期格式如下:
| 格式 | 例子 | 输出 |
| ---- | ---- | ---- |
| Y | 2022 | 年份,4位数字 |
| y | 22 | 年份,2位数字 |
| m | 10 | 月份,2位数字 |
| M | Oct | 英文月份 |
| d | 18 | 日,2位数字 |
| D | Fri | 英文星期几 |
| H | 15 | 小时数,24小时制 |
| h | 03 | 小时数,12小时制 |
| i | 05 | 分钟数 |
| s | 22 | 秒数 |
例如,以下代码会输出当前时间的年月日和时间:
echo "今天是 " . date("Y/m/d") . "<br>";
echo "现在时间是 " . date("H:i:s");
输出结果:
今天是 2022/10/18 现在时间是 15:20:22
strtotime()函数
strtotime()函数用于将日期时间字符串解析为Unix时间戳,从而方便进行各种时间计算。strtotime()函数的语法如下:
strtotime(time, now)
其中,time参数是必填的,代表要转换的时间字符串;now参数可选,代表要参照的时间戳,默认为当前时间。
strtotime()函数支持很多不同格式的时间字符串,例如"10 September 2022"、"2022-10-22"、"2022/10/22 15:30:00"等等。另外,strtotime()函数还支持一些特殊字符串,例如"now"、"tomorrow"、"next Monday"等等。
例如,以下代码会输出从现在起两周后的日期:
echo date("Y/m/d", strtotime("+2 weeks"));
输出结果:
2022/11/01
time()函数
time()函数用于获取当前时间的Unix时间戳。time()函数不需要任何参数,直接调用即可。以下代码会输出当前的Unix时间戳:
echo time();
输出结果:
1663525690
mktime()函数
mktime()函数可以将给定的日期转换为Unix时间戳。mktime()函数的语法如下:
mktime(hour, minute, second, month, day, year)
其中,hour、minute和second参数分别表示小时、分钟和秒;month、day和year参数分别表示月、日和年。注意,mktime()函数的参数必须按照时、分、秒、月、日、年的顺序传递。
例如,以下代码会输出2022年12月31日23时59分59秒的Unix时间戳:
echo mktime(23, 59, 59, 12, 31, 2022);
输出结果:
1672502399
getdate()函数
getdate()函数可以将Unix时间戳转换为包含日期、时间、星期几和夏令时信息的关联数组。getdate()函数的语法如下:
getdate(timestamp)
其中,timestamp参数可选,代表要转换的Unix时间戳,默认为当前时间。
例如,以下代码会输出当前时间的年月日、星期几和是否处于夏令时:
$date = getdate();
echo "今天是 " . $date["year"] . "/" . $date["mon"] . "/" . $date["mday"] . "<br>";
echo "今天是 " . $date["weekday"] . "<br>";
echo "现在是否是夏令时:";
if ($date["dst"] == 1) {
echo "是";
} else {
echo "否";
}
输出结果:
今天是 2022/10/18 今天是 Tuesday 现在是否是夏令时:否
总结
PHP提供了很多日期和时间相关的函数,通过合理运用这些函数,我们可以轻松地处理时间和日期,实现各种常见的时间计算和显示。在使用这些函数时,需要仔细研究它们的语法和参数含义,选择合适的格式和参数传递方式,才能准确地获取所需的时间和日期信息。
