javascript - 使用时区缩写将一个时区的日期转换为另一时区

标签 javascript jquery

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

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

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

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

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

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

最佳答案

给你:

// 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'));

关于javascript - 使用时区缩写将一个时区的日期转换为另一时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17085351/

相关文章:

javascript - 如何使用 JavaScriptExecutor 获取浏览器状态栏上显示的文本

javascript - 为什么这个 javascript 在 Chrome 中有内存泄漏?

javascript - Kinetic JS 图像分层和动画问题

php - JSON 到 Javascript 对象文字表示法?

javascript - 创建一个可点击的下拉菜单,获取值并将它们放入 JQuery 表中

javascript - 如何从 ckeditor 中删除特定按钮

javascript - 我怎样才能知道指令回调是由哪个 ng-repeat 项组成的?

JavaScript 警报未给出正确的 fileID 值

javascript - 计算表列中的总价格,可以手动插入

javascript - jQuery Mobile 选项值