webForumDet fria alternativet

Användning av datum

10 svar · 631 visningar · startad av Trankan

TrankanMedlem sedan okt. 2006129 inlägg
#1

Hej!

Jag håller på med en sida som är tänkt att kunna besökas vart man än befinner sig utan att datumhanteringen blir fel. Det här skapar problem för mig. Vi antar att jag har några dokument på sidan som kan laddas ner. I dokumentet står publiceringsdatumet, och detta datum står även på sidan där man kan ladda ner dokumentet. Om datumet på sidan skrivs ut med hänsyn till den tidszon man befinner sig i kan datumet komma att skilja sig från det i dokumentet. Skriver jag istället ut datumet i GMT så kan det innebära att vissa som besöker sidan får se att dokumentet publicerats ett datum som inte har inträffat ännu. Är tacksam för alla tips jag kan få. Hur har ni andra löst liknande problem?

fiddlerMedlem sedan juli 20023 617 inlägg
#2

Jag hade nog hållt mig till GMT och tydligt angett att så var fallet.

MickeA.comMedlem sedan feb. 20034 441 inlägg
#3

Jag brukar alltid använda UNIXTIME.
På så sätt anpassas alla datum efter den tidszon du väljer.

TrankanMedlem sedan okt. 2006129 inlägg
#4

Tack båda två för era svar!

Micke, menar du att jag ska använda UNIXTIME när jag lägger till ett datum i databasen, och sedan skriva ut det på sidan med hjälp av date() för att få datumet i önskad tidszon? Det är i vilket fall så jag har gjort hittills, men det fungerar som sagt inte helt bra i alla tillfällen.

Angående ditt förslag fiddler, så kan det tilläggas att jag använder datum även i andra sammanhang som till exempel registreringsdatum för en användare och vilket datum som en nyhet publicerats. Frågan är om jag bör använda GMT för allt detta också också om det kan skapa förvirring annars, eller finns det kanske en bättre lösning?

LedelMedlem sedan dec. 2004736 inlägg
#5

GMT för när dokumentet laddades upp samt lokal tid för MIG om när det blev uppladdat. Säg att du laddar upp ett dokument 19:00 svensk tid, det blir 17:00 GMT.
När jag som är i Quebec i Canada är jag GMT - 4, vilket blir 13:00. Nu har du väldigt många olika tider, men du skulle kunna göra som så att du i dokumentet anger GMT, och på din hemsida alla tre? Eller i alla fall min lokala tid (Quebec) och GMT. Men då också göra det tydligt om vilken tid som är vilken tidzon. Komplicerat det här!

MickeA.comMedlem sedan feb. 20034 441 inlägg
#6

Sparar som sagt alla tider i Unixtime och sen använder följande för att visa tid i en viss zon:

function set_datetime($the_time, $timezone = DEFAULT_GMT, $part = ""){
	switch($part){
		case "date" : $str = gmdate("Y-m-d", $the_time + $timezone * 3600); break;
		case "time" : $str = gmdate("H:i", $the_time + $timezone * 3600); break;
		case "sms" : $str = gmdate("Y-m-d H:i:s", $the_time + $timezone * 3600); break;
		default : $str = gmdate("Y-m-d H:i", $the_time + $timezone * 3600); break;
	}
	return $str;
}
PhorpherMedlem sedan feb. 20002 300 inlägg
#7

Ett alternativ kan vara att spara det i GMT och sen ha nånting i stil med: "Uploaded 4 hours ago..."

TrankanMedlem sedan okt. 2006129 inlägg
#8

Tack allihop för era förslag, kör med GMT på alla ställen nu för enkelhetens skull.

TrankanMedlem sedan okt. 2006129 inlägg
#9

Har upptäckt en sak som jag inte riktigt förstår. Trots att vi just nu ligger två timmar före GMT så blir den övre tidsstämpeln, som visar den lokala tiden, två timmar mindre än den för GMT. Borde det inte vara tvärtom? Om jag gör något fel, skulle någon kunna säga hur man korrekt skapar en tidsstämpel i GMT?

strtotime('now');
strtotime('now GMT');
MickeA.comMedlem sedan feb. 20034 441 inlägg
#10

Hur är tiden på servern inställd?
Om det är en utvecklingsserver som är inställd på att klockan är CET kan väl liknande fel uppstå?

TrankanMedlem sedan okt. 2006129 inlägg
#11

Tiden är inställd på CEST, alltså centraleuropeisk sommartid. Det är ju två timmar före GMT, så jag förstår inte riktigt varför min kod inte fungerar som jag vill.

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)