PhP日期和时间分离、加法和计算
PhP Date and Time separation, addition and calculation
另一个日期时间问题。
我有时会很忙,比如 -> “2021-02-24 12:00:00”(字符串)
我有这样的当前日期 -> date('Y-m-d h:i:s') (string)
我需要计算两者之间经过了多少小时:分钟:秒。例如(忙于)2021-02-14 15:00:00 当前时间是 2021-02-14 16:15:00 所以我需要显示类似的内容:01:15:00.
但是如果超过 99 小时怎么办,我该如何让它看起来像这样 -> 120:02:36.
我昨天问的问题不够具体所以我在这里得到了一些答案:
(我知道这是我的错)
但最后我不能用它来解决这个问题。
如果将日期转换为时间戳,则可以使用 之类的方法将时间分解为 hours/minutes/seconds。
sprintf()
只是一种用 2 位数字分秒格式化日期的方法...
$inputDate = new DateTime("2021-02-22 12:00:00");
$nowDate = new DateTime();
$interval = abs($inputDate->getTimeStamp() - $nowDate->getTimeStamp());
$hours = floor($interval / 3600);
$minutes = floor(($interval / 60) % 60);
$seconds = $interval % 60;
echo sprintf("%d:%02d:%02d", $hours, $minutes, $seconds);
作为输出给出(最近)...
51:22:01
DateTime extension dt针对这个问题有一个特殊的方法:diffFormat()。
echo dt::create('2021-02-22 12:00:00')->diffFormat("Now","%G:%I:%S");
几分钟前的输出:
55:52:36
另一个日期时间问题。
我有时会很忙,比如 -> “2021-02-24 12:00:00”(字符串)
我有这样的当前日期 -> date('Y-m-d h:i:s') (string)
我需要计算两者之间经过了多少小时:分钟:秒。例如(忙于)2021-02-14 15:00:00 当前时间是 2021-02-14 16:15:00 所以我需要显示类似的内容:01:15:00.
但是如果超过 99 小时怎么办,我该如何让它看起来像这样 -> 120:02:36.
我昨天问的问题不够具体所以我在这里得到了一些答案: (我知道这是我的错)
但最后我不能用它来解决这个问题。
如果将日期转换为时间戳,则可以使用 之类的方法将时间分解为 hours/minutes/seconds。
sprintf()
只是一种用 2 位数字分秒格式化日期的方法...
$inputDate = new DateTime("2021-02-22 12:00:00");
$nowDate = new DateTime();
$interval = abs($inputDate->getTimeStamp() - $nowDate->getTimeStamp());
$hours = floor($interval / 3600);
$minutes = floor(($interval / 60) % 60);
$seconds = $interval % 60;
echo sprintf("%d:%02d:%02d", $hours, $minutes, $seconds);
作为输出给出(最近)...
51:22:01
DateTime extension dt针对这个问题有一个特殊的方法:diffFormat()。
echo dt::create('2021-02-22 12:00:00')->diffFormat("Now","%G:%I:%S");
几分钟前的输出:
55:52:36