[英]php date_diff in hours
如何使下面的代碼轉換小時數?
$timestart = date_create('02/11/2011' . $row->timestart); //$row->timestart returns time in 00:00:00 format
$timestop = date_create('02/11/2011' . $row->timestop); //$row->timestop returns time in 00:00:00 format
date_add($timestop, date_interval_create_from_date_string('2 days')); //add 2 days
$date_diff = date_diff($timestart, $timestop);
echo "Timespan: ";
echo $date_diff->format('%h hours');
echo "<br />";
我如何獲得hours:minutes:seconds
? 我正在嘗試使用date_diff
函數。
date_diff()的結果是DateInterval類的對象。 此類對象具有一個非常有用的屬性- $days
:它是開始日期和結束日期之間的總天數。 此外,它存儲(作為其公共財產)小時,分鍾和秒之間的差異。
因此,我想,您需要的只是從$ date_diff變量中提取這些屬性的值,然后將24*$days
添加到小時數中。 )所有這些都可以包裝成一個簡單的函數:
function hms_date_diff(DateInterval $date_diff) {
$total_days = $date_diff->days;
$hours = $date_diff->h;
if ($total_days !== FALSE) {
$hours += 24 * $total_days;
}
$minutes = $date_diff->i;
$seconds = $date_diff->s;
return sprintf('%02d:%02d:%02d', $hours, $minutes, $seconds);
}
至於DateDiff :: format, 文檔說...
DateInterval :: format()方法不會重新計算時間字符串或日期段中的結轉點。
由date_diff
返回的DateInterval
對象date_diff
存儲每個時間段(秒,分鍾,小時,天,月和年)。
由於相差2天,因此hours屬性為0,這就是您得到的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.