Frage

so dass ich einen Zeitstempel in mysql habe, ist:

SELECT `tsdate`, UNIX_TIMESTAMP( `tsdate`) FROM t1
2010-11-07 21:50:05, 1289191805

Wenn ich die folgende versuchen und verwenden, zeigt es die falsche Zeit / Datum

var newDate = new Date();
newDate.setTime(1289191805000);
dateString = newDate.toUTCString();
alert(dateString);

Mon, 08 Nov 2010 04:50:05 GMT

Wie kann ich JavaScript bekommen das richtige Datum zu zeigen?

Ich verwende derzeit das Werkzeug highcharts zu grapth, und es wird die falsche Datum / Zeit zeigt auch (es ist in JavaScript geschrieben). Ich möchte nicht, den Code von highcharts ändern, aber ich werde, wenn nötig.

Danke, Josh

War es hilfreich?

Lösung 3

Ich fand die Lösung bei http://highslide.com/forum/viewtopic .php? f = 9 & t = 8613

Highcharts.setOptions({
   global: {
      useUTC: false
   }
});

Ich wollte auch Anthony Grist und Seldaek für einigen hilfreichen Code danken!

var newDate = new Date();
newDate.setTime(1289191805000 - (newDate.getTimezoneOffset() * 60 * 1000));
dateString = newDate.toUTCString();
alert(dateString);

Andere Tipps

Es sieht aus wie Sie eine Zeitzone Problem haben. Wie Sie das Javascript man sehen, ist GMT, während ich Ihnen vermuten einige westliche US-Zeit ist?

Versuchen Sie, die folgenden in Ihrer MySQL-Abfrage:

SELECT UNIX_TIMESTAMP( CONVERT_TZ( tsdate, '-07:00', 'GMT') ) FROM t1

-07. 00 könnte durch was auch immer Zeitzone ersetzt werden Kennung du bist in

Eine alternative Lösung könnte sein, newDate.setTime(mysqlTimestamp + 7*3600000) in JavaScript zu tun, anpassen, um nur dort.

Wie bereits erwähnt, toString verwendet, wird es in Ortszeit zurückzukehren, obwohl es auch zusätzliche Zeitzone Informationen hat. Ein Hack es, in Ortszeit angezeigt werden, ohne dass zusätzliche Zeitzone Informationen zu verwenden, ist getTimezoneOffset () (gibt einen Wert in Minuten) mit sechzig multipliziert mit 1000 multipliziert (um es in wenigen Sekunden zu erhalten) (in Millisekunden zu erhalten)

var newDate = new Date();
newDate.setTime(1289191805000 - (newDate.getTimezoneOffset() * 60 * 1000));
dateString = newDate.toUTCString();
alert(dateString);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top