我在php里有两个日期。
$date1 = 'May 3, 2012 10:38:22 GMT'
$date2 = '06 Apr 2012 07:22:21 GMT'
然后我把它们都减去
$date2 - $date1
,并获取
Result:6
为什么结果是6而不是27?如何减去这两个日期,并使其返回基于月份差异的结果,同时减去年、日和时间?
发布于 2012-05-06 16:03:03
第1部分:为什么结果是6?
第一次减去日期时,日期只是字符串。PHP尝试将它们转换为整数。它通过转换直到第一个非数字来实现这一点。因此,date2变为6,date1变为0。
第2部分:如何让它工作?
$datetime1 = strtotime('May 3, 2012 10:38:22 GMT');
$datetime2 = strtotime('06 Apr 2012 07:22:21 GMT');
$secs = $datetime2 - $datetime1;// == <seconds between the two times>
$days = $secs / 86400;
根据需要进行转换。
发布于 2012-05-06 16:03:04
$date1 = new DateTime("May 3, 2012 10:38:22 GMT");
$date2 = new DateTime("06 Apr 2012 07:22:21 GMT");
echo $date1->diff($date2)->format("%d");
发布于 2012-05-06 16:05:41
有一种方法可以使用mktime n,在时间戳中创建日期,然后减去,然后使用日期函数以您想要的方式显示。
另一种方法是将两个日期的格式设置为相同的格式,然后减去...
第三条路
$date1= new DateTime("May 3, 2012 10:38:22 GMT");
$date2= new DateTime("06 Apr 2012 07:22:21 GMT");
echo $date1->diff($date2)->("%d");
第四条路
$datetime1 = strtotime('May 3, 2012 10:38:22 GMT');
$datetime2 = strtotime('06 Apr 2012 07:22:21 GMT');
$secs = $datetime2 - $datetime1;// == return sec in difference
$days = $secs / 86400;
https://stackoverflow.com/questions/10469037
复制相似问题