【发布时间】:2015-05-19 10:26:08
【问题描述】:
这是我的代码:
$logdate = Input::get('logdate');
$enddate = Input::get('enddate');
//Cast the dates to yyyy-dd-mm format for comparison
$startdt = date('Y-d-m',strtotime($logdate));
$enddt = date('Y-d-m',strtotime($enddate));
//Cast the dates into datetime objects
$date1 = new DateTime($startdt);
$date2 = new DateTime($enddt);
//Calculate the difference between the 2 datetime objects
$diff = $date1->diff($date2, true);
//cast logdate into correct format for entry in the database
$newlogdate = strtotime($logdate);
$formatlogdate = date('Y-d-m',$newlogdate);
我正在使用它来获取间隔中的天数:
Log::info(intval($diff->days));
每当我在同一个月内编写涉及 12 天或更少差异的代码时,这里的代码都可以正常工作,但是一旦超过 12 天或当我尝试计算 2 个月之间的差异时,它就会变得混乱并给我结果16000+
例如,根据此代码,2015 年 4 月 26 日和 2015 年 2 月 5 日之间的天数相差 16557 天,我不知道他们是如何得出这个数字的,但大约是 45 年,结果是总是 16000 + 无论我选择哪个日期,因为它们在 12 天单月半径之外
【问题讨论】:
-
当你在使用 Laravel 时,使用 Carbon 可能是一个好主意。它是内置的,可以为您节省一些代码行。 carbon.nesbot.com/docs/#api-difference
-
那太好了,我希望我在写所有逻辑之前就看到了,现在重写没有意义,但感谢您的提示,我会把它保存在后面当我需要再次做这样的事情时,我的头脑
标签: php datetime laravel datediff