öncelikle teşekkürler gmdate komutuda gün cinsinden hesaplatıyor saate çevirmedi
denedigimde 5 gün sonrası için 5 saat kaldıgını gosteriyor.
birde timezone set tanımlı olmasına rağmen gece 2 de sıfırlanıyor
Aşağıdaki fonksiyonu dener misiniz ?
function dateDiff($time1, $time2, $precision = 6) {
if (!is_int($time1)) {
$time1 = strtotime($time1);
}
if (!is_int($time2)) {
$time2 = strtotime($time2);
}
if ($time1 > $time2) {
$ttime = $time1;
$time1 = $time2;
$time2 = $ttime;
}
//$intervals = array('year','month','day','hour','minute','second');
$intervals = array('hour','minute','second');
$intervals_tr = array('saat','dakika','saniye');
$diffs = array();
foreach ($intervals as $interval) {
$ttime = strtotime('+1 ' . $interval, $time1);
$add = 1;
$looped = 0;
while ($time2 >= $ttime) {
$add++;
$ttime = strtotime("+" . $add . " " . $interval, $time1);
$looped++;
}
$time1 = strtotime("+" . $looped . " " . $interval, $time1);
$diffs[$interval] = $looped;
}
$count = 0;
$times = array();
foreach ($diffs as $interval => $value) {
if ($count >= $precision) {
break;
}
if ($value > 0) {
if ($value != 1) {
//$interval .= "s";
}
$interval_tr_text = str_replace($intervals, $intervals_tr, $interval);
$times[] = $value . " " . $interval_tr_text;
$count++;
}
}
return implode(", ", $times);
}
echo dateDiff("now", "next monday");Çıktı:
Alıntı
116 saat, 1 dakika, 40 saniye