我有一个服务器时间(美国的东部成本),我想转换为用户的本地时间,无论他的位置如何。我不知道用户的时区。
以下是MongoDB中存储的样本日期(UTC时间):
ISODate("2012-05-03T09:40:34.764Z") which becomes 5/3/2012 5:40:34 AM
我想将其转换为用户的本地时间。
是否有插件我可以看一下或有人用插件完成它?
我的代码无效:
var svrDate = new Date('5/3/2012 5:40:34 AM');
var tzo = ((new Date()).getTimezoneOffset() / 60) * (-1);
var userTime = new Date(svrDate.setHours(svrDate.getHours() + tzo)).toLocaleString());
答案 0 :(得分:4)
简单:
var d = new Date("2012-05-03T09:40:34.764Z");
alert(d);
就我而言,这会打印:
Thu May 03 2012 02:40:34 GMT-0700 (PDT)
因为我在加利福尼亚。
字符串末尾的Z表示日期字符串是UTC。 JavaScript已经知道如何处理它。如果你想要本地时间,只需调用通常的getTime(),getMonth(),getDay()方法。如果你想要UTC时间,请调用它们的UTC变体:getUTCTime(),getUTCMonth(),getUTCDay()等。
答案 1 :(得分:1)
查看https://github.com/GregDThomas/jquery-localtime的jquery-localtime插件 - 将UTC时间转换为当地时间。
答案 2 :(得分:1)
`//Covert datetime by GMT offset
//If toUTC is true then return UTC time other wise return local time
function convertLocalDateToUTCDate(date, toUTC) {
date = new Date(date);
//Local time converted to UTC
console.log("Time :" + date);
var localOffset = date.getTimezoneOffset() * 60000;
var localTime = date.getTime();
if (toUTC)
{
date = localTime + localOffset;
}
else
{
date = localTime - localOffset;
}
date = new Date(date);
console.log("Converted time" + date);
return date;
}
`