我怎么知道 date_diff 持续时间是多少?
How can I tell what the date_diff duration is?
我有以下代码:
$sStart = date('Y-m-d H:i:s', strtotime($row['sStart']));
$sEnd = date('Y-m-d H:i:s', strtotime($row['sEnd']));
$sStartDate = new DateTime($sStart);
$sEndDate = new DateTime($sEnd);
$diff = date_diff($sStartDate, $sEndDate, true);
$dur = $diff->format('%h:%i');
$row['sStart']
和 $row['sEnd']
是来自 MySQL 数据库的 datetime
。
如何判断 $diff
是否超过 24 小时?
$diff
的类型为 DateInterval。
我认为这会给你使用 date_diff:
结果的小时数
$hours = ($diff->days * 24) + $diff->h;
if ($hours > 24) {
// etc ..
}
由于 24 小时是 1 天,您可以对 DateInterval::format
调用使用 %a
修饰符来计算间隔跨越的天数:
$sStartDate = DateTime::createFromFormat('Y-m-d H:i:s', '2013-05-13 21:56:00');
$sEndDate = DateTime::createFromFormat('Y-m-d H:i:s', '2013-05-14 21:56:01');
$diff = date_diff($sStartDate, $sEndDate, true);
$days = $diff->format('%a');
if (1 <= $days) {
echo '24 hours or more.';
} else {
echo 'less than 24 hours.';
}
我有以下代码:
$sStart = date('Y-m-d H:i:s', strtotime($row['sStart']));
$sEnd = date('Y-m-d H:i:s', strtotime($row['sEnd']));
$sStartDate = new DateTime($sStart);
$sEndDate = new DateTime($sEnd);
$diff = date_diff($sStartDate, $sEndDate, true);
$dur = $diff->format('%h:%i');
$row['sStart']
和 $row['sEnd']
是来自 MySQL 数据库的 datetime
。
如何判断 $diff
是否超过 24 小时?
$diff
的类型为 DateInterval。
我认为这会给你使用 date_diff:
结果的小时数$hours = ($diff->days * 24) + $diff->h;
if ($hours > 24) {
// etc ..
}
由于 24 小时是 1 天,您可以对 DateInterval::format
调用使用 %a
修饰符来计算间隔跨越的天数:
$sStartDate = DateTime::createFromFormat('Y-m-d H:i:s', '2013-05-13 21:56:00');
$sEndDate = DateTime::createFromFormat('Y-m-d H:i:s', '2013-05-14 21:56:01');
$diff = date_diff($sStartDate, $sEndDate, true);
$days = $diff->format('%a');
if (1 <= $days) {
echo '24 hours or more.';
} else {
echo 'less than 24 hours.';
}