繁体   English   中英

从PHP函数strtotime()接收不正确的结果

[英]Receiving incorrect results from the PHP function strtotime()

我从两个日期开始:

$endDate   = '2013-11-30 18:30:00';
$beginDate = '2013-10-31 18:30:00';

然后,我使用以下代码获取日期差异:

$diff = abs(strtotime($endDate) - strtotime($beginDate));

接下来,我检查日期差异

$days = $diff / (60*60*24);

但是,它会返回一个小数日,例如30.041666666667 我不想得到这个小数。 为什么会这样? 仅在某些情况下会出现此问题。

尝试这个 :

$date1 = new DateTime("2013-11-21 12:59:00");
    $date2 = new DateTime("2013-11-21 13:01:00");
    $interval = $date1->diff($date2); 

    echo "DIFF: ".$interval->format("%Y-%m-%d %H:%i:%s");

请访问该链接了解详情

你也可以使用mktime()函数来计算diff。

<?php
$endDate   = '2013-11-30 18:30:00';
$endDateTemp = explode(' ', $endDate);
$endDateArr1 = explode('-', $endDateTemp[0]);
$endDateArr2 = explode(':', $endDateTemp[1]);
$endTimestamp = mktime($endDateArr2[0], $endDateArr2[1], $endDateArr2[2], $endDateArr1[1], $endDateArr1[2], $endDateArr1[0]);
$beginDate = '2013-10-31 18:30:00';
$beginDateTemp = explode(' ', $beginDate);
$beginDateArr1 = explode('-', $beginDateTemp[0]);
$beginDateArr2 = explode(':', $beginDateTemp[1]);
$beginTimestamp = mktime($beginDateArr2[0], $beginDateArr2[1], $beginDateArr2[2], $beginDateArr1[1], $beginDateArr1[2], $beginDateArr1[0]);
$diff = $endTimestamp - $beginTimestamp;
$day = $diff/(24*60*60);
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM