新日期(UTCstrings),将UTCStrings转换为其他时区(非本地)

时间:2012-07-02 04:04:07

标签: javascript datetime

我知道如何将新日期(UTCStrings)用于本地时区。

但现在,问题是如何将UTCString转换为其他时区(非本地)。

e.g。

UTCString是'1338480000000'。 我当前的时区是UTC + 4。 我想将日期(UTCString)转换为UTC + 9。

我该怎么做?

感谢您的帮助!

更新

感谢BalaKrishnan的帮助。

我遵循BalaKrishnan的要点制作了一个简单的功能。希望这会对其他人有所帮助。

function utcToOtherTimezone(utcString, timezone){
    var isoDt = new Date(utcString), // do this to convert it to iso time: 
    dt = isoDt.addMinutes( isoDt.getTimezoneOffset() + (timezone * 60) );

    return dt.toLocaleDateString() + ' ' + dt.toLocaleTimeString();
}

$('#dtime').html(utcToOtherTimezone(1341282169000, +8));​

不要忘记添加datejs

在线测试示例http://jsfiddle.net/ysjia/FWbZ8/。享受吧。

1 个答案:

答案 0 :(得分:1)

首先从UTCString创建一个Date对象,如下所示: var utcString = 1338480000000; //然而,这将是当地时间,而不是等时间。 var isoDt = new Date(utcString); //执行此操作将其转换为iso时间: isoDt.addMinutes(isoDt.getTimezoneOffset()  ); // addMinutes是来自Date.js的API。 现在,isoDt对象的日期值与UTC日期相同,您可以向其添加必要的偏移量+9或其他。

请参阅此jquery faq讨论此问题: http://jqfaq.com/how-to-parse-a-date-string-disregarding-time-zones/