Merhaba,
Elimde şöyle bir format var :
Örnek : 35:30 saat'e 01:50 eklemek istiyorum. Sonuç : 36:20 olmalı. Nasıl yaparım? strtotime ile denediğimde 23:00 den sonrasını 00:00 olarak atıyor. Buda işime yaramıyor.
Nasıl saatleri toplayabilirim.
7
●321
- 08-06-2015, 15:01:56
<?php function timetoTime($time) { $timeArr = array_reverse(explode(":", $time)); $seconds = 0; foreach ($timeArr as $key => $value) { if ($key > 2) break; $seconds += pow(60, $key) * $value; } return $seconds; } $tarih1 = timetoTime('35:30'); $tarih2 = timetoTime('01:50'); $tarihson = gmdate($tarih1+$tarih2); ?>
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 15:01:56 -->-> Daha önceki mesaj 14:53:46 --
son kısmı şu şekilde düzeltirsin.
$tarihson = $tarih1 + $tarih2; echo ($tarihson >= 3600) ? gmdate('H:i:s',$tarihson):gmdate('i:s',$tarihson); - 08-06-2015, 15:04:31Teşekkürler çok işime yarayacak.
Edit :
$tarih1 = timetoTime('80:30');
$tarih2 = timetoTime('01:50');
sunucu 82:20 vermiyor. Bir sınırlamamı var?
trky adlı üyeden alıntı: mesajı görüntüle - 08-06-2015, 15:19:49
<?php function timetoTime($time) { $timeArr = array_reverse(explode(":", $time)); $seconds = 0; foreach ($timeArr as $key => $value) { if ($key > 2) break; $seconds += pow(60, $key) * $value; } return $seconds; } $tarih1 = timetoTime('35:30'); $tarih2 = timetoTime('01:50'); $tarihson = $tarih1 + $tarih2; echo ($tarihson >= 3600) ? gmdate('H:i:s',$tarihson):gmdate('i:s',$tarihson); ?>
80 diye bir dakika olmadığı için sonuç vermemesi normal. 60 dakika üzerinden hesap yapıyor.
82:20 yerine 01:22:20 yazar - 08-06-2015, 16:08:11
<?php function timetoTime($time) { $timeArr = array_reverse(explode(":", $time)); $seconds = 0; foreach ($timeArr as $key => $value) { if ($key > 2) break; $seconds += pow(60, $key) * $value; } return $seconds; } function timePlus($times,$type = false) { $secs = 0; foreach($times as $time) { $secs = $secs + timetoTime($time); } if($type == false) { return ($secs >= 3600) ? gmdate('H:i:s',$secs):gmdate('i:s',$secs); } else { $minute = floor(($secs / 60)); if($minute < 10) { $minute = '0'.$minute; } $second = $secs - ($minute * 60); if($second < 10) { $second = '0'.$second; } return $minute.':'.$second; } } $zamanlar = array('80:30','01:50','06:20'); echo timePlus($zamanlar,true); echo '<br />'; echo timePlus($zamanlar,false); ?> - 08-06-2015, 16:37:04Teşekkürler. Peki bunu çıkartma işlemi olarak nasıl kullanırız?
Örnek :81:10 - 01:20 = 79:50
trky adlı üyeden alıntı: mesajı görüntüle - 08-06-2015, 16:57:14function timeMinus($times,$type = false) {
foreach($times as $time) { if(!@$secs) { $secs = timetoTime($time); } else { $secs = $secs - timetoTime($time); } }
if($type == false) {
return ($secs >= 3600) ? gmdate('H:i:s',$secs):gmdate('i:s',$secs);
} else {
$minute = floor(($secs / 60)); if($minute < 10) { $minute = '0'.$minute; }
$second = $secs - ($minute * 60); if($second < 10) { $second = '0'.$second; }
return $minute.':'.$second;
}
}
Telefondan bu kadar yapabildim test edersin
timeMinus(array('81:44','26:12'),true);
Sent from my iPhone using Tapatalk