jQuery:如何将UTC的服务器时间转换为Web浏览器的本地时间

jQuery: How to convert server time in UTC to web browser's local time?

本文关键字:时间 转换 浏览器 Web 服务器 UTC jQuery      更新时间:2023-09-26

我有一个服务器时间(美国东部成本),我想将其转换为用户的本地时间,无论他身在何处。我不知道用户的时区。

以下是存储在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());

简单:

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()等。

看看 jquery-localtime 插件 https://github.com/GregDThomas/jquery-localtime - 它将 UTC 时间转换为本地时间。

`//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;
}
`