Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  7 824

Kode

	$dato = date("d/m/Y \k\l\.\:H:i",strtotime($i['date']));
	echo $dato."<br />";

// $i['date'] kommer fra databasen: 2010-12-26 19:48:28
// $i['date'] ble satt inn v.h.a NOW() via mysql slik:
// "INSERT INTO data (`vid`,`info`,`date`) VALUES('$idm','1',NOW())"
Spørsmålet er hvorfor NOW() setter inn 2010-12-26 19:48:28, altså én time bak den virkelige tiden?

Jeg skjønner ikke. Håper noen kan hjelpe meg
PHP henter tiden fra serveren ettersom det er server side scripting. Hvis da serveren befinner seg i en annen tidssone, kan tiden bli feil. I ditt tilfelle en time bak.

Derfor må du gi beskjed om hvilken tidssone du er i. Prøv å sett denne koden over scriptet ditt:

Kode

date_default_timezone_set('Europe/Oslo');
Trådstarter
32 1
Sitat av Toak Vis innlegg
PHP henter tiden fra serveren ettersom det er server side scripting. Hvis da serveren befinner seg i en annen tidssone, kan tiden bli feil. I ditt tilfelle en time bak.

Derfor må du gi beskjed om hvilken tidssone du er i. Prøv å sett denne koden over scriptet ditt:

Kode

date_default_timezone_set('Europe/Oslo');
Vis hele sitatet...
Prøvde i scriptet som setter inn i databasen. Fortsatt samme problem.
Problemet ser ut til å være beskrevet her:
http://bugs.php.net/bug.php?id=35440
Dette kommer nok av at Norge bruker GMT +2 om sommeren og GMT +1 om vinteren. Prøv noen andre tidssoner fra denne siden:

http://www.php.net/manual/en/timezones.europe.php

Edit: Og sjekk med en tidssone du vet er feil, for å se om det utgjør noen forskjell - altså om serveren bruker den tidssonen du deklarerer.

Edit2: Kan også hende slashdot har rett, la ikke merke til at date kommer fra databasen.
Sist endret av bronze; 26. desember 2010 kl. 21:20.
Trigonoceps occipita
vidarlo's Avatar
Donor
SQL-queryen vil sette tida iht. tida mysqlserveren har, ikkje iht. php si tidssone afaik.

http://dev.mysql.com/doc/refman/5.5/...e-support.html
Trådstarter
32 1
Sitat av bronze Vis innlegg
Problemet ser ut til å være beskrevet her:
http://bugs.php.net/bug.php?id=35440
Dette kommer nok av at Norge bruker GMT +2 om sommeren og GMT +1 om vinteren. Prøv noen andre tidssoner fra denne siden:

http://www.php.net/manual/en/timezones.europe.php

Edit: Og sjekk med en tidssone du vet er feil, for å se om det utgjør noen forskjell - altså om serveren bruker den tidssonen du deklarerer.
Vis hele sitatet...
Per definisjon burde paris fungere, ifølge greenwichmeantime er paris GMT+1. Men dette forandret ikke på noe.

Sitat av slashdot Vis innlegg
SQL-queryen vil sette tida iht. tida mysqlserveren har, ikkje iht. php si tidssone afaik.

http://dev.mysql.com/doc/refman/5.5/...e-support.html
Vis hele sitatet...
Gjorde følgende i mysql:

Kode

SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR);
Dette burde legge til en time. Fortsatt ingen forandring

Fant ut at ovennevnte må gjøres i hver eneste script, så det blir nokså hårete. Prøvde å forandre tidssonen fikk følgende:

Error

SQL query:

SET GLOBAL time_zone = 'Europe/Oslo'

MySQL said: Documentation
#1227 - Access denied; you need the SUPER privilege for this operation
Vis hele sitatet...
Kontaktet serveren, de sier jeg må forandre det i scriptet for det går visstnok ikke å forandre serveren.

date_default_timezone_set('Europe/Oslo');
Vis hele sitatet...
Ingen utslag

Hvordan kan jeg manipulere NOW() i scriptet? Finner INGEN informasjon om NOW() på google

Uff, så mye som jeg hater det, må jeg bruke DATE_ADD i hver eneste NOW() funksjon i scriptet. Blir så rot. Skal bytte server så snart kontrakten går ut.

Takk for hjelpen folkens. KP.
klokka til servern er nok i UTC tid. som er ganske vanlig.

Og det er ikke akkurat vanskelig å konvertere
Fjern GLOBAL fra «SET GLOBAL time_zone = 'Europe/Oslo'». NOW() skulle da gi riktig resultat på den tilkoblingen (hvilket vil si at det må kjøres på nytt for hver gang scriptet ditt kobler til databasen).
Sist endret av Akhkharu; 28. desember 2010 kl. 01:18.