📅  最后修改于: 2023-12-03 15:03:45.386000             🧑  作者: Mango
在PHP中,日期和时间是非常重要的部分。日期和时间的正确使用确保了程序的正确性和功能性。因此,在PHP中,提供了一些内置的函数和类用于处理日期和时间。
PHP提供了一些内置的函数来处理日期和时间,比如date()
、time()
、strtotime()
等。
date()
date()
函数用于获取当前的日期和时间,或者格式化一个日期。下面是一个例子:
echo "今天是 " . date("Y/m/d") . "<br>";
echo "现在时间是 " . date("h:i:sa");
输出结果为:
今天是 2021/12/23
现在时间是 10:12:34am
在调用date()
函数时,我们需要传入一个日期格式的参数。其中常用的格式为:
Y
:4位数字完整表示的年份;m
:表示月份,从01到12;d
:表示日期,从01到31;h
:小时格式为12小时时间,从01到12;i
:表示分钟数,从00到59;s
:表示秒数,从00到59;a
:用小写字母表示午前或午后的值。更多格式选项可以参考官方文档。
time()
time()
函数用于获取当前时间的Unix时间戳。在PHP中,Unix时间戳是从1970年1月1日00:00:00(GMT)开始经过的秒数。下面是一个例子:
echo "当前时间的Unix时间戳是 " . time();
输出结果为:
当前时间的Unix时间戳是 1640255017
strtotime()
strtotime()
函数用于将任何英文文本的日期时间描述转换为Unix时间戳。下面是一个例子:
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
输出结果为:
1640255017
968172000
1640341417
1640869817
1640983322
1640812800
1639728000
PHP也提供了一个DateTime
类用于处理日期和时间。通过使用该类,我们可以非常方便地进行日期和时间计算、格式化等操作。
要创建一个DateTime
对象,我们只需要传入一个日期时间字符串即可。下面是一个例子:
$date = new DateTime('2021-12-23 11:00:00');
echo $date->format('Y/m/d H:i:s');
输出结果为:
2021/12/23 11:00:00
要修改DateTime
对象的日期时间,我们可以使用modify()
方法。下面是一个例子:
$date = new DateTime('2021-12-23 11:00:00');
$date->modify('+1 day');
echo $date->format('Y/m/d H:i:s');
输出结果为:
2021/12/24 11:00:00
使用DateTime
类,我们可以很方便地进行日期和时间的计算。下面是一些例子:
$date1 = new DateTime('2021-12-23 11:00:00');
$date2 = new DateTime('2021-12-24 11:00:00');
$interval = $date2->diff($date1);
echo $interval->format('%a days'), "\n";
$date1 = new DateTime('2021-12-23');
$date2 = new DateTime('2022-12-23');
$interval = $date2->diff($date1);
echo $interval->format('%y years %m months %d days'), "\n";
$date1 = new DateTime('2021-12-23 11:00:00', new DateTimeZone('Asia/Shanghai'));
$date2 = new DateTime('2021-12-23 11:00:00', new DateTimeZone('America/New_York'));
$interval = $date2->diff($date1);
echo $interval->format('%h hours %i minutes'), "\n";
输出结果为:
1 days
1 years 0 months 0 days
-13 hours 0 minutes
使用format()
方法,我们可以将DateTime
对象格式化为任意日期时间字符串。下面是一些例子:
$date = new DateTime('2021-12-23 11:00:00');
echo $date->format('Y-m-d H:i:s'), "\n";
echo $date->format('d/m/Y H:i:s'), "\n";
echo $date->format('D, j M Y H:i:s e'), "\n";
输出结果为:
2021-12-23 11:00:00
23/12/2021 11:00:00
Thu, 23 Dec 2021 11:00:00 Asia/Shanghai
在PHP中,日期和时间处理是非常重要的。使用内置的日期时间函数和类,我们可以方便地处理日期和时间。但是,日期时间的正确使用也会涉及到时区、夏令时等问题,需要进行注意。