2015-10-07 187 views
0

我有格式的日期时间字符串(“2015-10-07 15:20:00 UTC”),我想将其转换为客户端的本地时区。我用下面的语句此:将UTC时间转换为javascript中的本地时区

var UTC_Time = new Date ("2015-10-07 15:20:00 UTC"); 

var localTime = UTC_Time.toString(); 

谷歌浏览器能正常工作并返回转换时间2015年10月7日二十时20分00秒的PST这是罚款。但在IE浏览器(我担心IE10)它返回相同的UTC日期,即2015-10-07 15:20:00。我怎样才能获得在IE浏览器的转换时间。任何帮助将不胜感激。

+1

如果您正在进行大量的日期操作,您可能需要查看[momentjs](http://momentjs.com/) – Dan

+0

有没有很多的日期操作,但主要是根据时间转换到当地客户的时区。无论如何,momentjs是一个很好的建议,但我无法使用momentjs获得客户本地时区的标准名称。 –

回答

1

当您在javascript中显示日期时,会将其转换为客户端时间。由于您在日期字符串中指定了UTC,因此它会假定它是UTC日期。有几种方法可以解决这个问题。

如果你只是需要一个字符串,你可以做localTime = UTC_Time.toUTCString()

如果您需要js Date对象,则可以通过从上一个对象获取值来创建新的日期对象。

new Date(UTC_Time.getUTCFullYear(), UTC_Time.getUTCMonth(), 
    UTC_Time.getUTCDate(), UTC_Time.getUTCHours(), UTC_Time.getUTCMinutes(), 
    UTC_Time.getUTCSeconds(), UTC_Time.getUTCMilliseconds()); 

或者您可以简单地替换字符串的UTC部分。

var dtStr = "2015-10-07 15:20:00 UTC"; 
dtStr = dtStr.replace(" UTC", ""); 
var localTime = new Date(dtStr); 

如果您知道您的字符串将始终采用相同的格式,请仅使用此选项。

相关问题