Ben milisaniye (yani 70370) toplam kestirmeniz var ve dakika olarak göstermek istiyorum: saniye: milisaniye 00:00:0000 yani.
PHP bunu nasıl yapabilirim?
Bunun için tarih fonksiyonları kullanarak tuzağına düşmeyin! Burada ne var, bir zaman aralığı değil, bir tarihtir. Naif yaklaşım, böyle bir şey yapmak için:
date("h:i:s.u", $mytime / 1000)
tarih fonksiyonu (gasp!) tarihleri için kullanılır çünkü, o zaman bu durumda onu isterim şekilde işlemez - Bir tarih / zaman biçimlendirirken bu hesaba, vs, saat dilimlerini ve gün ışığı tasarruf alır.
Bunun yerine, muhtemelen sadece bazı basit matematik yapmak isteyeceksiniz:
$input = 70135;
$uSec = $input % 1000;
$input = floor($input / 1000);
$seconds = $input % 60;
$input = floor($input / 60);
$minutes = $input % 60;
$input = floor($input / 60);
// and so on, for as long as you require.
PHP 5.3 kullanıyorsanız, DateInterval
a> nesne yararlanabilirler:
list($seconds, $millis) = explode('.', $milliseconds / 1000);
$range = new DateInterval("PT{$seconds}S");
echo $range->format('%H:%I:%S') . ':' . str_pad($millis, 3, '0', STR_PAD_LEFT);
Milisaniye miktarını istediğiniz şekilde göstermek için bu fonksiyonu deneyin:
<?php
function udate($format, $utimestamp = null)
{
if (is_null($utimestamp)) {
$utimestamp = microtime(true);
}
$timestamp = floor($utimestamp);
$milliseconds = round(($utimestamp - $timestamp) * 1000000);
return date(preg_replace('`(?<!\\\\)u`', sprintf("%06u", $milliseconds), $format), $timestamp);
}
echo udate('H:i:s.u'); // 19:40:56.78128
echo udate('H:i:s.u', 654532123.04546); // 16:28:43.045460
?>