2 tarih arasındaki farkı bulma

0 Cevap

Ben bu yapılmış ve uygun sonuç verir, böylece onu verdiği bazı yardıma ihtiyacı

function daysDifference($end){
    //$start = "2007-03-24";
    //$end = "2009-06-26";
    $now = date("Y-m-d");
    $e = (is_string($end) ? strtotime($end) : $end);

    $diff = abs($e - strtotime($now));

    $years = floor($diff / (365 * 60 * 60 * 24));
    $months = floor(($diff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
    $days = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24)/ (60 * 60 *24));

    return ($years == 0 ? '' : ($years == 1 ? $years . ' year ' : $years . ' years ')) . ($months == 0 ? '' : ($months == 1 ? $months . ' month ' : $months . ' months ')) . ($days == 0 ? '' : ($days == 1 ? $days . ' day ' : $days . ' days '));
}

Görmek için kontroller var yani $end benim veritabanından çekilirken onun bir dize veya tarih zaten eğer.

$e şimdi kullanılabilir, ancak ben $now çıkarılacak çalıştım $e komik sonuçlar elde

Örneğin:

$now bugün olmanın 13th ve $e, bir proje için bir bitiş tarihi olmak, ne gerek bana vermek için varsayalım ... değil mi?

Ben 12 gün kalan söylemek almak için herhalde ediyorum Nerede, Ben 1 yıl 12 gün olsun.

ve $e = 0000-00-00 (durumda kullanıcı girişi, bir bitiş tarihi değil), ben 40 yıl 10 ay ve geri kalan 26 gün olsun.

Benim hesaplamaları için farklı varyasyonları bir sürü denedim ama hiçbir yerde alıyorum.

0 Cevap