timestamp – Helper pro převod na datum

- sumiisakua
 - Člen | 36
 
Má Nette něco takového?
Jde o to, že mám čas v vteřinách.
$item->time = 60;
Tento kod mi daných 60 vteřin přičte k aktuálnímu času. → nehodí se
{$item->time|date:"H:i:s"}
Tento kod to převede správně, ale vere v potaz časové pásmo a tak mám čas +1 → nehodí se
{=date("H:i:s", $item->time)}
Mám jedině tenhle bastl, ale…
function myTime($time)
{
	$hour = floor($time / 60 / 60);
	$min = $time / 60 % 60;
	$sec = $time % 60;
	if($hour == 0 && $min == 0) {
		return $sec;
	}elseif($hour == 0 && $min != 0) {
		return $min . ":" . $sec;
	}elseif(($hour != 0 || $hour != 0) && $min == 0) {
		return $hour . ":" . $min . ":" . $sec;
	}
}
$time = myTime(60);
Znáte nějaké správné řešení?
Potřeboval bych, aby to vypsalo čas ve správném formátu a pokud, jako v tomto případě, bude hodina = nula, tak jí to nevypíše.

- sumiisakua
 - Člen | 36
 
Jak píše gmvasek. Mám např. číslo 7594 a potřebuji ho převést na časový formát.

- sumiisakua
 - Člen | 36
 
Melmen: Ano, viz můj poslední příklad („bastl“).
Editoval sumiisakua (13. 2. 2012 22:38)

- h4kuna
 - Backer | 741
 
Ahoj toto by nestačilo? Druhým parametrem je nastavení timezone tak jen si s ním pohrát.
$x = new \DateTime(date('Y-m-d H:i:s', 60), new DateTimeZone(\DateTimeZone::UTC));
$x->format('H:i:s');
http://www.php.net/…onstruct.php
Editoval h4kuna (14. 2. 2012 9:19)

- sumiisakua
 - Člen | 36
 
h4kuna: Tak to bohužel taky nefunguje.
DateTime(3) {
   date => "1970-01-01 01:01:00" (19)
   timezone_type => 3
   timezone => "Europe/London" (13)
}
Musel jsem tam napsat „natvrdo“ Europe/London, jelikož DateTimeZone::UTC to nebralo → DateTimeZone::__construct(): Unknown or bad timezone (1024)
Editoval sumiisakua (14. 2. 2012 10:30)

- David Ďurika
 - Člen | 328
 
skus nieco ako:
<?php
$interval = new DateInterval('PT'.$timespan.'S');
echo $interval->format('%m month, %d days');
?>
viac info: http://php.net/…interval.php
Editoval achtan (14. 2. 2012 10:56)