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.