Jimmy wrote:
> "Martin Møller Bæk" <martin@fjerndetteheraflame.dk> wrote in message
> news:cq6kpe$n1g$1@gnd.k-net.dk...
[klip]
>
> Jeg har fortsat problemer
> Her er scriptet:
>
> <?php
>
> $Timestamp = 60 * 60 * 24;
>
> $Days = date ("d", $Timestamp);
> $Hours = date ("H", $Timestamp);
> $Minutes = date ("i", $Timestamp);
> $Seconds = date ("s", $Timestamp);
>
> echo "Timestamp: ". $Timestamp ."<br><br>";
> echo "Days: ". $Days ."<br>";
> echo "Hours: ". $Hours ."<br>";
> echo "Minutes: ". $Minutes ."<br>";
> echo "Seconds: ". $Seconds ."<br>";
>
> ?>
>
>
> Her er output:
>
> Timestamp: 86400
>
> Days: 02
> Hours: 01
> Minutes: 00
> Seconds: 00
>
>
> Jeg undrer mig over antal dage og timer.
> Giver man den 60 * 60 * 5 får man:
>
> Timestamp: 18000
>
> Days: 01
> Hours: 06
> Minutes: 00
> Seconds: 00
>
Umiddelbart vil jeg mene at timestamp'et 0 er UNIX epoch time
(1970-01-01 00:00:00).
Det er derfor du får en dag mere end du forventer, for der er jo ikke
noget der hedder den 0. januar :)
Prøv at bruge 'z' til days i stedet for, så for du 'Day of the year'
(0-365) og ikke 'Day of the month' (1-31).
Din ekstra time gætter jeg på er fordi din server har timezone sat til
EST +0100. Så bliver 0-punktet for timestamp jo pludeslig til:
1970-01-01 01:00:00
og derfår du den ekstra time på.
Måske kan du løse det ved at lave en setlocale, inden du kalder time
$curLocale = setlocale(LC_TIME, 0);
setlocale(LC_TIME, 'en_EN');// Her må du selv finde det rigtige locale
$Days = date('z', $Timestamp);
$Hours = date('H', $Timestamp);
$Minuts = date('i', $Timestamp);
$Seconds = date('s', $Timestamp);
setlocale(LC_TIME, $curLocale);
men ellers er det da en funktion der er til at håndtere, at konvertere
et antal sekunder til dage, timer, minutter og sekunder:
function secs2DaysHoursMinsSecs( $secs ) {
$days = floor( $secs / (60*60*24) );
$remainder = ( $secs % (60*60*24) );
$hours = floor( $remainder / (60*60) );
$remainder = ( $remainder % (60*60) );
$minutes = floor( $remainder / (60) );
$seconds = $remainder % 60;
return array($days, $hours, $minutes, $seconds);
}
list($Days,$Hours,$Minutes,$Seconds)=secs2DaysHoursMinsSecs($Timestamp);
MVH Per Thomsen,
http://www.pert.dk/