计算两个日期之间超过 1 小时的天数再加 1 天
Counting number of days between 2 dates when exceed in 1 hour add another 1 day
我在获取准确的天数时遇到问题。鉴于我有 date/time 考虑计算天数的小时数,代码给我零天
$fisrstDate = new DateTime("2018-03-07 04:46:00");
$secondDate = new DateTime("2018-03-07 11:10:00");
$days=$fisrstDate->diff($secondDate)->days;
另一个例子是它应该给我 2 天但只显示 1 天我的想法是当超过 24 小时我想再添加 1 天这样它会给我 2 天的输出
$fisrstDate = new DateTime("2018-03-07 04:46:00");
$secondDate = new DateTime("2018-03-08 05:00:00");
$days=$fisrstDate->diff($secondDate)->days;
您可以使用 strtotime
获取两个时间戳之间的精确秒数,然后将其转换为天数,然后使用 ceil
使其工作。例如:
$fisrstDate = strtotime("2018-03-07 04:46:00");
$secondDate = strtotime("2018-03-07 11:10:00");
$days = abs(ceil((abs($fisrstDate - $secondDate)/ (60 * 60 * 24)) - (1 / 24)));
echo $days;
不就是date2 - date1 + 1
吗?
我在获取准确的天数时遇到问题。鉴于我有 date/time 考虑计算天数的小时数,代码给我零天
$fisrstDate = new DateTime("2018-03-07 04:46:00");
$secondDate = new DateTime("2018-03-07 11:10:00");
$days=$fisrstDate->diff($secondDate)->days;
另一个例子是它应该给我 2 天但只显示 1 天我的想法是当超过 24 小时我想再添加 1 天这样它会给我 2 天的输出
$fisrstDate = new DateTime("2018-03-07 04:46:00");
$secondDate = new DateTime("2018-03-08 05:00:00");
$days=$fisrstDate->diff($secondDate)->days;
您可以使用 strtotime
获取两个时间戳之间的精确秒数,然后将其转换为天数,然后使用 ceil
使其工作。例如:
$fisrstDate = strtotime("2018-03-07 04:46:00");
$secondDate = strtotime("2018-03-07 11:10:00");
$days = abs(ceil((abs($fisrstDate - $secondDate)/ (60 * 60 * 24)) - (1 / 24)));
echo $days;
不就是date2 - date1 + 1
吗?