我的 MySQL 数据库中有一个日期时间字段。我正在使用 Laravel 并且 Carbon 库已经包含在内。我正在构建一个函数来将此日期时间字段与当前日期进行比较。目前,在 Carbon 中使用 diffInDays 函数时,结果如下:
Datetime field | current time | result
2016-09-13 23:59:59 | 2016-09-14 16:42:12 | 0
2016-09-13 12:05:59 | 2016-09-14 16:42:12 | 1
2016-09-12 23:59:59 | 2016-09-14 16:42:12 | 1
2016-09-12 12:05:59 | 2016-09-14 16:42:12 | 2
但是,我只想比较日期,所以我希望结果是:
Datetime field | current time | result
2016-09-13 23:59:59 | 2016-09-14 16:42:12 | 1
2016-09-13 12:59:59 | 2016-09-14 16:42:12 | 1
2016-09-12 23:59:59 | 2016-09-14 16:42:12 | 2
2016-09-12 12:05:59 | 2016-09-14 16:42:12 | 2
是否已经在 PHP/Carbon/其他库中为此预先构建了函数?
最佳答案
最简单的方法是使用 DateTimeImmutable,将两者的时间设置为午夜(例如),然后进行比较。这将使您获得想要的结果。
$start = new DateTimeImmutable ("20160101T1530", $dtz);
$stop = new DateTimeImmutable ("20160102T1300", $dtz);
// DateTimeImmutable returns new objects when modified.
$chkStart = $start->modify ("midnight");
$chkStop = $stop->modify ("midnight");
// Setting second flag to "true" to get absolute difference.
$diff = $chkStart->diff ($chkStop, true);
关于php - 如何找到 2 个日期时间对象之间的天数差异作为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39486119/