2

我正在开发一个 Web 应用程序,用户可以在该应用程序中设置他/她的时区,该时区在应用程序中进一步用于各种日期时间转换。所选时区可以与用户的区域设置时区不同。

我目前遇到一个问题,我需要将用户选择的日期(用户假设在他/她在应用程序中选择的时区)与当前日期进行比较,以查看选择的日期是否是未来的日期。参考我搜索过的所有地方,我发现我可以在用户区域设置或 UTC 时间中获取当前日期。

所以我的问题的要点是 - 有没有办法使用时区缩写将日期从一个时区转换为另一个时区?

我在这里发帖之前已经搜索了很多,但找不到任何解决方案。我在搜索过程中发现的大多数地方都表明没有这样的解决方案可用。

我曾尝试使用 date.js,但它不足以达到目的,因为它已经过时了,而且它支持的时区缩写也非常有限。我还查看了 timezoneJS,但我认为它不适用于时区缩写。

有什么方法可以使用 javascript 或 jquery 来完成吗?

4

1 回答 1

3

干得好:

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

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

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

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

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

// get Bombay time
console.log(calcTime('Bombay', '+5.5'));

// get Singapore time
console.log(calcTime('Singapore', '+8'));

// get London time
console.log(calcTime('London', '+1'));
于 2013-06-13T11:08:19.337 回答