簡體   English   中英

比較兩個日期結果0

[英]Comparing two dates results 0

所以我目前正在制作一個小型php應用程序,我需要比較兩個日期以獲取它們之間的天數。 可悲的是我不能使用datediff(),因為php版本是5.2。

我已經搜索了怎么做,發現了很多答案,但是我總是遇到同樣的問題。 當我在日期之間進行區分時,結果總是為0。

function date_diff($dateFrom, $dateTo) {
    echo $dateFrom->format('d-m-Y') . " : " . $dateTo->format('d-m-Y') . '<br/>';
    $diff = abs($dateTo-$dateFrom);

    return sprintf
    (
        "%d Days, %d Hours, %d Mins, %d Seconds",
        intval( $diff / 86400 ),
        intval( ( $diff % 86400 ) / 3600),
        intval( ( $diff / 60 ) % 60 ),
        intval( $diff % 60 )
    );
}

我目前正在使用此功能,參數在這里:

    while ($donnees = mysqli_fetch_array($res))
        $date = new DateTime($donnees['Date']);


    $date = date_create($date->format("Y-m-d"));
    $today = new DateTime();

    echo $utilDate->date_diff($date, $today);

我的$ date和$ today變量不是空的,所以我不明白為什么這段代碼不起作用。 有人有主意嗎?

我認為$ dateTo和$ dateFrom是對象,並且您在$diff = abs($dateTo-$dateFrom);

試試$diff = abs($dateTo->getTimestamp()-$dateFrom->getTimestamp());

您要使用diff運算符:

function date_diff($dateFrom, $dateTo) {
    echo $dateFrom->format('d-m-Y') . " : " . $dateTo->format('d-m-Y') . '<br/>';
    $diff = $dateNow->diff($dateTo);

    $day = $diff->format('%d');
    $hour = $diff->format('%h');
    $min = $diff->format('%i');
    $seconds = $diff->format('%s');

    return /*string involving above formats*/;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM