webForumDet fria alternativet

Tidsfel?

PHP

9 svar · 296 visningar · startad av Gislaved.net

Medlem sedan juni 20001 521 inlägg
Frågan#1

Jag ska visa tiden med hjälp av

Tiden just nu : <?
echo date ("l dS of F Y h:i:s");
?>

Men klockan går två timmar efter. Jag har kollat med Aleborg
som servern står hos, och den tiden ska vara rätt. Hur gör jag för att rätt tid ska visas?

Medlem sedan juni 20006 031 inlägg
#2

Hmm, konstigt.
Funkar hur bra som helst hos mig. Borde ju vara något med Aleborgs tidsinställningar.

Medlem sedan juni 20001 521 inlägg
#3

Pedda skrev:

Hmm, konstigt.
Funkar hur bra som helst hos mig. Borde ju vara något med Aleborgs tidsinställningar.

Jo, jag misstänkte också det eftersom det inte varit några problem tidigare med exakt samma funktion. Men enligt Anders så är servern korrekt inställd, så det är inte där felet ligger.

Medlem sedan sep. 20021 655 inlägg
#4

Att det blir fel har att göra med att vi för tillfället har sommartid i Sverige plus att servern förmodligen är inställd på GMT-tid.

Testa:

<?

echo date ("l dS of F Y h:i:s", strtotime("+2 hours"));

?>
Medlem sedan juni 20001 521 inlägg
#5

Tack. Jag testade din kod på http://gislaved.net/tid.php

Innebär detta att jag behöver göra denna förändring i samtliga mina PHP-script nu?

Medlem sedan mars 2000263 inlägg
#6

Lösningen är inte att anpassa sig till problemet, utan att åtgärda problemet som är att klockan går fel på servern. http://gislaved.net/tid.php är ju ett bevis på att klockan går fel.

Medlem sedan sep. 20021 655 inlägg
#7

Det enklaste vore nog om du om använder en gemensan variabel som andra argument till dina date-funktioner. Då behöver du bara ändra på ett enda ställe när vi går över till vintertid igen:

<?php

/* I en include-fil */
$timestamp = strtotime("+2 hours"); // eller time()+7200

/* I den fil där datumet ska skrivas ut */
echo date("l dS of F Y h:i:s", $timestamp);

?>
Medlem sedan okt. 20023 030 inlägg
#8

Webbhotell brukar oftast stänga av automatisk ändring av klockan för sommartid för att man ska slippa sådant men det gör visst inte Aleborg.

Medlem sedan mars 2000263 inlägg
#9

Har funderat lite på problemet faktiskt. Hade ett liknande problem för ett år sedan. Lösningen var så nått i stil med:
putenv("TZ=Europe/Stockholm");

du kan ju testa
echo getenv("TZ");
först och se vilken tidszon den är inställd på.

Medlem sedan juni 20001 521 inlägg
#10

Ah, nu verkar det fungera igen. Scriptet visar rätt tid utan att man lägger till två timmar.

140 ms totalt · 2 externa anrop · v20260731065814-full.2ae45ccc
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)