PHP是一门开源的通用脚本语言,被广泛应用于Web开发领域。在Web开发中,日期时间的处理是非常重要的一项功能。PHP提供了很多的日期时间函数类、函数库,提供快捷、高效的日期时间处理功能,让Web开发变得更加简单快捷。本文将介绍PHP中常用的日期时间计算函数及类,帮助初学者快速掌握它们的用法。
一、PHP常用日期时间函数
1. date()函数
date()函数用于格式化一个本地时间或日期。用法如下:
```
string date ( string $format [, int $timestamp = time() ] )
```
其中,`$format`参数表示所需的日期时间格式,`$timestamp`参数表示可选的时间戳,如果不提供该参数,则默认使用当前时间的时间戳。下面是一些常用的日期时间格式:
| 格式 | 说明 |
| --- | --- |
| Y | 四位数的完整年份 |
| y | 两位数的年份 |
| m | 数字表示的月份,有前导零 |
| n | 数字表示的月份,没有前导零 |
| d | 月份中的第几天,有前导零 |
| j | 月份中的第几天,没有前导零 |
| H | 时,24小时制,有前导零 |
| h | 时,12小时制,有前导零 |
| i | 分钟数,有前导零 |
| s | 秒数,有前导零 |
| A | 大写的上午或下午(AM 或 PM) |
| a | 小写的上午或下午(am 或 pm) |
例如:
```
echo date("Y-m-d H:i:s");
```
输出:2021-01-01 12:00:00
2. strtotime()函数
strtotime()函数用于将一个日期时间字符串解析为 UNIX 时间戳(自1970年1月1日以来的秒数)。用法如下:
```
int strtotime ( string $time [, int $now = time() ] )
```
其中,`$time`表示要解析的日期时间字符串,`$now`参数表示可选的时间戳,如果不提供该参数,则默认使用当前时间的时间戳。
例如:
```
$time_str = '2:00pm December 1 2021';
$timestamp = strtotime($time_str);
echo $timestamp;
```
输出:1640995200
3. mktime()函数
mktime()函数用于创建一个日期的时间戳,用法如下:
```
int 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,表示使用本地设置。
例如:
```
$timestamp = mktime(0,0,0,1,1,2022);
echo $timestamp;
```
输出:1640995200
4. time()函数
time()函数返回当前时间的 UNIX 时间戳,用法如下:
```
int time ( void )
```
例如:
```
echo time();
```
输出:1644811617
二、PHP常用日期时间类
1. DateTime类
DateTime类是一个强大、灵活的日期时间处理类,它提供了Date和Time两个类的集合,可以用于表示日期和时间。下面是使用DateTime类创建日期时间对象的示例:
```
$datetime = new DateTime('2022-01-01 12:00:00');
echo $datetime->format('Y-m-d H:i:s');
```
输出:2022-01-01 12:00:00
DateTime类提供了很多常用的方法,如:
- add():增加一个时间间隔
- sub():减去一个时间间隔
- diff():计算两个日期时间对象之间的时间差
- format():格式化输出日期时间
- setTime():设置时间
- setDate():设置日期
- setTimestamp():设置时间戳
- getTimestamp():获取时间戳
- getOffset():获取时区偏移量等。
2. DateInterval类
DateInterval类用于表示两个日期或时间之间的时间间隔,例如计算两个日期之间的天数、小时数、分钟数等。用法如下:
```
$date1 = new DateTime('2022-01-01');
$date2 = new DateTime('2022-01-10');
$interval = $date1->diff($date2);
echo $interval->format('%R%a days');
```
输出:+9 days
3. DateTimeZone类
DateTimeZone类用于处理时区相关的问题,它可以获取指定时区的时间,也可以获取当前时区的信息。用法如下:
```
$timezone = new DateTimeZone('Asia/Shanghai');
$date = new DateTime('now', $timezone);
echo $date->format('Y-m-d H:i:s');
```
输出:2022-02-15 16:38:57
4. DatePeriod类
DatePeriod类用于生成一段时间内的日期列表,例如生成一个月内的每一天或者每隔一天的日期等。用法如下:
```
$start = new DateTime('2022-01-01');
$end = new DateTime('2022-01-31');
$interval = new DateInterval('P1D');
$dates = new DatePeriod($start, $interval, $end);
foreach($dates as $date){
echo $date->format('Y-m-d') . '
';
}
```
输出:
2022-01-01
2022-01-02
2022-01-03
...
2022-01-30
2022-01-31
结语:
本文主要介绍了PHP中常用的日期时间计算函数及类,其中包括date()函数、strtotime()函数、mktime()函数、time()函数、DateTime类、DateInterval类、DateTimeZone类、DatePeriod类等。这些函数和类提供了丰富的日期时间处理功能,能够帮助我们轻松地处理日期时间相关问题。初学者可以通过本文了解它们的用法,提高自己的编程水平。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
人生因有朋友而牵挂,因有事业而从容,因有成就而自豪,因有爱和被爱而幸福,因有希望而奋斗,因有健康而快乐,祝你应有尽有,天天快乐!