根据标题,我试图找出秒的差异,然后将这些秒转换为天数和小时。
阅读并遵循类似的问题,我建立了一个函数,将我想要的小时,天,周,月或年添加到今天的日期时间,我从那部分得到正确的结果。
然而,我然后尝试将两个日期(开始日期和转移日期)转换为unix时间戳,减去两个时间戳以秒为单位查找两个日期之间的差异,然后转换为天或分钟(/86400和/3600),我没有得到我预期的结果。
代码如下:
<?php
$dateTimeNow = date();
function dateTimeShift($dateTimeIn, $lengthNum, $lengthWord) {
$shifted = date("Y-m-d H:i:s", strtotime($dateTimeIn." + $lengthNum $lengthWord"));
$difference = strtotime($shifted)-strtotime($dateTimeIn);
return $shifted . " <br> " . floor($difference/86400) . " days or " . floor($difference/3600) . " hours";
}
echo dateTimeShift($dateTimeNow, "1", "day");
?>
结果是当前…
2023-01-04 09:37:51>19361天或464673小时
我期望它是
2023-01-04 09:37:51>1天或24小时
问题是你使用date()函数没有参数,试试这个:
$dateTimeNow = date("Y-m-d H:i:s");
function dateTimeShift($dateTimeIn, $lengthNum, $lengthWord) {
$shifted = date("Y-m-d H:i:s", strtotime($dateTimeIn." + $lengthNum $lengthWord"));
$difference = strtotime($shifted)-strtotime($dateTimeIn);
return $shifted . " <br> " . floor($difference/86400) . " days or " . floor($difference/3600) . " hours";
}
echo dateTimeShift($dateTimeNow, "1", "day");
输出:
2023-01-04 09:57:31 <br> 1 days or 24 hours