[英]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.