2016-06-29 20 views
0

Wenn ich var myDate = new Date('29-06-2016 10:00') ausführen, enthält myDate nur eine Sache: eine Zahl. Die Anzahl der Millisekunden von 01-01-1970 00:00:00 GMT bis 29-06-2016 10:00:00 XXXSo wandeln Sie ein JavaScript-Datum in eine andere Zeitzone um

XXX ist die Zeitzone des Betriebssystems. In meinem Fall BST (weil es ein Sommertermin ist, im Winter wäre GMT).

Jetzt ... Was ist, wenn ich die Millisekunden vom 01-01-1970 ... bis 29-06-2016 10:00:00 GMT-7 möchte?

Ich habe nur Methoden gefunden, um mir zu sagen, wie viel Uhr in der GMT-7 Zeitzone ist, wenn in BST Zeitzone ist 29-06-2016 10:00:00, aber das ist nicht, was ich suche!

Um eine Umgebungsvariable so zu ändern, dass die Zeitzone GMT-7 ist, ist keine Option.

+1

Vielleicht Moment .. helfen kann, aber nicht sicher. http://momentjs.com/timezone/ –

Antwort

0

Ich glaube, ich habe einen Weg gefunden, es zu tun, mit moment.js als ErikS vorgeschlagen:

// This code is running in a Node.js server configured to use UTC 

// Incorrect date, as it is interpret as UTC. 
// However, we do this to get the utcOffset 
var auxDate = moment.tz(new Date('2016-6-23 10:15:0'), 'US/Mountain'); 

// Get the milliseconds since 1970 of the date as if it were interpreted 
// as GMT-7 or GMT-6 (depends on the date because of Daylight Saving Time) 
var milliseconds = auxDate.valueOf() - auxDate.utcOffset() * 60000; 
2

Ich denke, das Datum Zeichenfolge im folgenden Format

"2016-06-29T10:00:00-07:00" 

möchten, dass Sie relativ GMT (nicht 100% sicher, auf der Zeitzone, aber es ist Client-Seite so auf ihre locale abhängt) den Zeitzone lässt .

Ich hatte eine ähnliche Sache, in der JS die Zeit auf Datumobjekten änderte und die einzige Weise, die ich fand, war, das Datum einzustellen und dieses zu setzen.

Bonusinfo, um dies aus einer .NET DateTime mit dem folgenden String-Format zu erhalten.

"yyyy-MM-ddTHH:mm:sszzz" 
+0

yup, 'Date.parse (" 2016-06-29T10: 00: 00-07: 00 ")' funktioniert in Chrome, Firefox, IE und Edge so aussieht wie eine sichere Wette . – pawel

+0

In meinem Fall funktioniert nicht. Ich arbeite mit einem Server, der in UTC ist (und sein muss) ... also müsste ich wissen, wann Sommerzeit und Winterzeit ist, und die String-Daten konsequent ändern. –