📅  最后修改于: 2023-12-03 15:41:24.480000             🧑  作者: Mango
在 PHP 编程中,时间函数是非常常见的。本文将介绍如何通过 PHP 函数来计算自某个日期以来经过的时间。
在进行日期计算之前,我们需要了解日期格式化。PHP 中日期格式化可以通过 date()
函数实现。该函数接受两个参数:第一个参数为日期格式化字符串,第二个参数为时间戳(可选)。例如:
echo date("Y-m-d H:i:s"); // 输出当前日期和时间
echo date("Y-m-d H:i:s", time()); // 输出当前日期和时间,与上面等价
echo date("Y-m-d H:i:s", 1633652400);// 输出固定日期和时间,2021-10-08 18:33:20
可以看到,第一个参数指定了日期格式化的字符串。其中,Y 表示年份,m 表示月份,d 表示日期,H 表示小时,i 表示分钟,s 表示秒。
在知道如何格式化日期之后,我们可以用 PHP 函数进行日期计算。PHP 中常用的日期计算函数有 strtotime()
和 date_diff()
。
要计算自当前日期以来经过的时间,可以使用 strtotime()
函数将要计算的日期转化为时间戳,再用 time()
函数获取当前时间戳,最后用现在的时间戳减去目标时间戳即可。例如:
$start_time = strtotime("2021-03-01"); // 起始时间戳
$end_time = time(); // 终止时间戳,当前时间
$diff = $end_time - $start_time; // 时间差
echo "自 2021-03-01 以来已经过去了 ".floor($diff/86400)." 天 "; // 输出相差多少天
以上代码将输出:自 2021-03-01 以来已经过去了 218 天。其中,86400 表示一天的秒数。
如果要计算自指定日期以来经过的时间,则需要用到 strtotime() 函数将要计算的日期转化为时间戳。例如:
$start_time = strtotime("2020-01-01"); // 起始时间戳
$end_time = strtotime("2021-01-01"); // 终止时间戳
$diff = $end_time - $start_time; // 时间差
echo "自 2020-01-01 以来已经过去了 ".floor($diff/86400)." 天"; // 输出相差多少天
以上代码将输出:自 2020-01-01 以来已经过去了 366 天。注意,闰年的一年有 366 天。
如果要计算自指定日期时间以来经过的时间,则需要用 DateTime
类。该类有一个 diff()
方法,用于计算两个日期时间之间的差值。例如:
$start_time = new DateTime("2021-03-01 12:00:00"); // 起始时间
$end_time = new DateTime(); // 终止时间,当前时间
$interval = $start_time->diff($end_time); // 时间差
echo "自 2021-03-01 12:00:00 以来已经过去了 ".$interval->format("%d 天 %H 小时 %i 分钟 %s 秒"); // 输出相差多少时间
以上代码将输出:自 2021-03-01 12:00:00 以来已经过去了 218 天 15 小时 25 分钟 56 秒。其中,format()
方法可以用于格式化时间差。
本文介绍了在 PHP 中如何计算自某个日期以来经过的时间。具体来说,我们了解了日期格式化、时间戳计算以及 DateTime
类的应用。这些知识点在实际编程中非常常见,希望本文能够对读者有所帮助。