2016-08-09 152 views
0

im Versuch Date-Objekt mit dem aktuellen Zeit bestimmter Zeitzone zu erhalten,JQuery Datum Objekt von Zeitzone

var options = { 
     timeZone: 'Asia/Novokuznetsk', 
     year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false 
    }, 
    formatter = new Intl.DateTimeFormat([], options), 
    date_string = formatter.format(new Date()),  
    dsplit = date_string.split(","), 
    date_arr = dsplit[0].split("/"), 
    time_arr = dsplit[1].split(":"), 
    now = new Date(date_arr[2], date_arr[0] - 1, date_arr[1], time_arr[0], time_arr[1], time_arr[2]); 

Und now gibt aktuelle Zeit bestimmter Zeitzone. Hauptproblem ist, dass nicht alle Zeitzonen von diesem Beispiel unterstützt werden. Gibt es eine bessere Möglichkeit, das Datumobjekt der aktuellen Zeit in einer bestimmten Zeitzone zu erhalten?

Antwort

0

Adomas: Versuchen Sie den folgenden Code, um jede Zeitzone auf der calcTime Funktion angeben:

<html> 
<head> 
<script language="JavaScript"> 

// function to calculate local time 
// in a different city 
// given the city's UTC offset 
function calcTime(city, offset) { 

    // create Date object for current location 
    d = new Date(); 

    // convert to msec 
    // add local time zone offset 
    // get UTC time in msec 
    utc = d.getTime() + (d.getTimezoneOffset() * 60000); 

    // create new Date object for different city 
    // using supplied offset 
    nd = new Date(utc + (3600000*offset)); 

    // return time as a string 
    return "The local time in " + city + " is " + nd.toLocaleString(); 

} 

// get Bombay time 
alert(calcTime('Bombay', '+5.5')); 

// get Singapore time 
alert(calcTime('Singapore', '+8')); 

// get London time 
alert(calcTime('London', '+1')); 

</script> 
</head> 
<body> 

</body> 
</html> 

Referenz: http://www.techrepublic.com/article/convert-the-local-time-to-another-time-zone-with-this-javascript/

+0

Ich denke, Ihr Vorschlag passen sollte, aber ich weiß nicht ausgeglichen. Zeitzonenformat Asien/Novokuznetsk, Eupore/Kiew usw. –

+0

Sie können den tatsächlichen Offset mit diesem erhalten: var offset = new Date(). GetTimezoneOffset(); Konsole.log (Offset); –

+0

Und es wäre Offset meiner Zeitzone. Wie kann man den Offset der Zeitzone Europa/Kiew kennen, wenn ich die aktuelle Zeit in Kiew nicht kenne? –