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 | 740
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)