📜  php中的日期时间(1)

📅  最后修改于: 2023-12-03 15:03:45.386000             🧑  作者: Mango

PHP中的日期时间

在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中,日期和时间处理是非常重要的。使用内置的日期时间函数和类,我们可以方便地处理日期和时间。但是,日期时间的正确使用也会涉及到时区、夏令时等问题,需要进行注意。