PHP日期时间函数,让你的网站时间更加准确
在网站开发中,日期时间处理是很重要的一部分。PHP作为一门主流的后端语言,在日期时间处理上提供了丰富的函数库来帮助我们轻松地完成各种操作。今天我们就来介绍一下PHP日期时间函数。
1. date()函数
date()函数是PHP中最常用的日期时间函数之一,可以根据指定的格式输出当前日期时间或指定的日期时间,语法如下:
date(string $format [, int $timestamp = time()])
其中,$format参数是必需的,指定输出日期时间的格式;$timestamp参数是可选的,指定要格式化的时间戳。默认为当前日期时间。
下面是一些常用的日期时间格式:
| 格式 | 说明 | 例子 |
| ---- | ---- | ---- |
| Y | 四位数完整表示的年份 | 2021 |
| y | 两位数表示的年份 | 21 |
| m | 月份,有前导零 | 01 ~ 12 |
| n | 月份,没有前导零 | 1 ~ 12 |
| d | 月份中的第几天,有前导零 | 01 ~ 31 |
| j | 月份中的第几天,没有前导零 | 1 ~ 31 |
| H | 24小时制的小时数,有前导零 | 00 ~ 23 |
| h | 12小时制的小时数,有前导零 | 01 ~ 12 |
| i | 分钟数,有前导零 | 00 ~ 59 |
| s | 秒数,有前导零 | 00 ~ 59 |
| A | 大写的上午或下午 | AM 或 PM |
| a | 小写的上午或下午 | am 或 pm |
| \ | 转义符 | \\ |
下面是一些示例:
echo date('Y-m-d H:i:s', time()); //输出当前日期时间,例如:2021-03-12 15:30:00
echo date('Y-m-d H:i:s', strtotime('2021-03-12 16:30:00')); //输出指定日期时间,例如:2021-03-12 16:30:00
2. time()函数
time()函数返回当前的时间戳(UTC),以秒为单位。时间戳是一个整数,表示从1970年1月1日00:00:00到当前时间的秒数。例如:
echo time(); //输出当前时间戳,例如:1615569340
3. strtotime()函数
strtotime()函数将任何人类可读的日期时间转换成时间戳,语法如下:
strtotime(string $time [, int $now = time()])
其中,$time参数是必需的,表示要转换的日期时间;$now参数是可选的,表示要参考的时间戳。默认是当前时间。
下面是一些示例:
echo strtotime('now'); //输出当前时间戳,例如:1615569340
echo strtotime('2021-03-12'); //输出指定日期的时间戳,例如:1615516800
echo strtotime('16:30:00'); //输出指定时间的时间戳,例如:1615602600
echo strtotime('2021-03-12 16:30:00'); //输出指定日期时间的时间戳,例如:1615602600
4. mktime()函数
mktime()函数可以根据指定的日期时间创建一个时间戳,语法如下:
mktime([int $hour = date('H') [, int $minute = date('i') [, int $second = date('s') [, int $month = date('n') [, int $day = date('j') [, int $year = date('Y') [, int $is_dst = -1]]]]]]])
其中,$hour、$minute、$second、$month、$day、$year参数都是可选的,表示日期时间的各个字段,如果不传入任何参数,则返回当前时间的时间戳。$is_dst参数也是可选的,表示是否为夏令时,默认为-1(由系统自动判断)。
下面是一些示例:
echo mktime(16, 30, 0, 3, 12, 2021); //创建指定日期时间的时间戳,例如:1615602600
5. checkdate()函数
checkdate()函数用于检查一个日期是否合法,语法如下:
checkdate(int $month, int $day, int $year): bool
其中,$month、$day、$year参数分别表示月份、日份和年份。如果日期合法,则返回true,否则返回false。
下面是一些示例:
var_dump(checkdate(2, 29, 2021)); //输出false,因为2021年不是闰年 var_dump(checkdate(2, 29, 2024)); //输出true,因为2024年是闰年
6. strtotime、date与时区
strtotime和date函数的结果都是根据PHP的默认时区来计算的。如果我们要在不同的时区中输出日期时间,就需要使用一些时区相关的函数。
(1) date_default_timezone_set()函数
date_default_timezone_set()函数可以设置PHP的默认时区,语法如下:
date_default_timezone_set(string $timezone_identifier)
其中,$timezone_identifier参数表示时区标识符。例如:
date_default_timezone_set('Asia/Shanghai');
(2) DateTime类
DateTime类是PHP中专门用于日期时间相关操作的类,可以处理时区、闰秒等问题。下面是一些示例:
$datetime = new DateTime('now', new DateTimeZone('Asia/Shanghai')); //创建一个当前时间的DateTime对象,指定时区为上海
echo $datetime->format('Y-m-d H:i:s'); //输出当前时间,例如:2021-03-12 16:30:00
$datetime = new DateTime('now', new DateTimeZone('America/New_York')); //创建一个当前时间的DateTime对象,指定时区为纽约
echo $datetime->format('Y-m-d H:i:s'); //输出当前时间,例如:2021-03-12 03:30:00
以上就是PHP日期时间函数的介绍。它们可以帮助我们在网站开发中更加轻松地处理日期时间相关操作。在实际使用中,需要根据具体需求选择合适的函数。
