2011-01-06 9 views
2

Ich verwende einen jquery Kalender namens Fullcalendar. Wenn ein Benutzer auf einen Tag klickt, wird er an eine andere Seite gesendet, um ein Ereignis für diesen Tag zu erstellen. Das Datum, auf das geklickt wurde, wird als date geliefert. Es wird dann durch die folgende Funktion ausgeführt, um es in UNIX-Zeit zu konvertieren.

$formatDate = $.PHPDate("U", date); 

Ich bin mit dem Javascript hier Datum Bibliothek http://joncom.be/code/jquery-phpdate/

Wenn ich das Datum Variable I eine Ausgabe wie diese

Di 4. Januar 2011 00:00:00 GMT + erhalten alarmieren 1100 (EST)

Dieses Mal ist richtig, aber nach dem $ format Anwendung Funktion der Unix-Ausgang ist nicht in der richtigen Zeitzone.

Leider gibt es lokale Zeiten in Bezug auf den Server und ich brauche es, um die Zeitzone des Benutzers korrekt zu liefern. Ich bemerke, dass es in der Dokumentation Zeitzonenreferenzen zu geben scheint, aber in der Dokumentation heißt es, dass Zeitzonen "NICHT UNTERSTÜTZT" sind

Bitte ... Wie kann ich meinen Unix-Zeitstempel in die richtige Zeitzone konvertieren?

Ich sollte darauf hinweisen, ich habe sehr wenig Erfahrung in Javascript und komme aus einem PHP/Codeigniter Hintergrund.

Danke für Ihre Hilfe.

Tim

+0

Das ist eine ActionScript-Bibliothek, kein Javascript. – Kai

+0

Entschuldigung, dass ... Ich habe den Link zu dem, was ich denke, die richtige Seite ... Ich weiß, das ist Javascript, weil ich es in meinem jquery Vollkalender verwenden – Tim

Antwort

0

Hier ist ein schöner Artikel viel über Zeitzonen in JavaScript zu erklären: http://www.hunlock.com/blogs/Javascript_Dates-The_Complete_Reference.

Die untere Zeile ist, die Ausgabe wird immer in der Zeitzone des Benutzers Computer (oder zumindest des Browsers) sein. Sie können dies (glaube ich) testen, indem Sie die Zeitzone in den Einstellungen Ihres Computers ändern. Sie werden sehen, dass sich das Datum auch in Ihrem Browser ändert (natürlich nach einer Aktualisierung).

Haben Sie das gemeint?

+0

Hallo, Vielen Dank für Ihre Antwort. Dies ist eine großartige Referenz! Prost. Leider bin ich immer noch verwirrt. Ich weiß, dass das Var Datum das Datum des Browsers zurückgibt. Allerdings, wenn ich es durch $ formatDate = $ .PHPDate ("U", Datum); Um in Unix-Zeit zu konvertieren, gibt es das falsche Datum zurück, oder genauer das Datum in Texas-Zeit (wo mein Server gehostet wird) – Tim

+0

Ah, richtig. Nun, ich bin mir ziemlich sicher, dass, wenn Sie die Zeitzone zu der Zeit hinzufügen, wenn Sie es erstellen (CST?), Die "Konvertierung" zu Ihrer lokalen Zeit den Rest erledigen wird. Schließlich spielt es keine Rolle, welche Zeitzone Sie verwenden: Es ist der gleiche Moment. Sie können die Zeit auch in utc mit der PHP-Funktion 'gmtime()' erstellen und dann Ihr Datum mit 'Date.UTC()' in Javascript erstellen. Schließlich könnten Sie 'date_timezone_set' in PHP verwenden, aber ich denke, dass die UTC-Option die sauberste und portabelste ist. –