Gå til innhold

Script henter feil fil pga tidssone


Anbefalte innlegg

Hei!

Jeg bruker dette scriptet for å hente ut ønsket dag mellom 01 og 42

<?php
$dager = floor(mktime() / 86400); // 60 * 60 * 24 = 86400
$dagNr = ($dager % 42) + 1;
if($dagNr <= 9 && $dagNr >= 1)
$dagNr = "0{$dagNr}";

 

Men akkurat nå skulle filen 13.php vært hentet, men frem til kl 0200 hentes 12.php.

Dette er jo pga tidssonen vi er i

 

Jeg har også følgende script på plass, uten at det da hjelper:

<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'no_NO');
?>

 

Noen som kan hjelpe? :-)

Lenke til kommentar
Videoannonse
Annonse

Siden jeg bruker dette scriptet hos one.com, har jeg ikke tilgang til pgp.ini fila. Ser følgende i php.ini:

date/time support - enabled 
"Olson" Timezone Database Version - 2011.4 
Timezone Database - internal 
Default timezone - UTC 

Lenke til kommentar

Testet med date_default_timezone_get, og det var UTC

Satt da date_default_timezone_set('Europe/Oslo');, og fikk endret det til riktig tidssone.

 

Jeg tror problemet ligger her:

$dager = floor(mktime() / 86400);

 

Finnes det noen bedre måte og få hentet riktig tid på?

Lenke til kommentar

Regn ut tidsforskjellen fra serveren og tiden du vil ha. Så legger du vare til antall sekunder som du ønsker +7200 vil stemme. Så lager du bare en if-spørring som sjekker om det er sommertid eller ikke. Er det ikke sommertid skal du bare legge til 3600. Enkelt og greit

Lenke til kommentar

$date = new DateTime('now', new DateTimeZone('Europe/Oslo'));
$dager = ($date->getTimestamp() + $date->getOffset()) / 86400; // 60 * 60 * 24 = 86400
$dagNr = ($dager % 42) + 1;

 

$date->getOffset() vil returnere 7200 når det er sommertid, og 3600 når det er vintertid.

Endret av xqus
Lenke til kommentar

Tusen takk. Funger som fy :-)

 

Har egentlig samme problem der jeg henter ut dagnavnene de neste 7 dagene og.

Har til nå brukt dette:

<?php $tomorrow = strftime("%A %d %B", time()+86400); echo $tomorrow; ?>

Men det henger jo og 2 timer etter.

 

Går det ann å legge til en funksjon som finner riktige dagnavn (Mandag, Tirsdag osv) til dette scriptet? :-)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...