获取JS中当前日期时间的特定时区

时间:2015-07-22 13:44:42

标签: javascript date datetime

我正在开发一个拥有来自世界各地的用户的平台,但某些设置会绑定到预定义的时区日期时间。

这是什么意思?如果用户从不同的时区连接,应用程序仍应向他显示他登录的预定义时区内的当前时间。我需要在客户端使用仅包含时区字符串的javascript计算此值。

我想做的是这样的事情:

date_format = ifelse(grepl("\\d{4}-\\d{2}-\\d{2} ", SMS.Date), "ymd", "mdy")

,结果应该是该时区的当前日期时间。

我知道有一些JS库可以解决这个问题,但我想问一下是否有一个简单的JS解决方案而不使用外部库?

2 个答案:

答案 0 :(得分:2)

取决于你对简单的定义;但不是真的。 Javascript不支持开箱即用的时区。我强烈推荐Moment Timezone http://momentjs.com/timezone/,因为它非常友好。我也处于具有相同要求的项目中,这个库使我的工作变得更加容易。

编辑: 使用库,按照以下要求做你想做的事情:

var timezonedDate = moment.tz('YOUR TZ STRING').toDate();

答案 1 :(得分:1)

您可以尝试:

var offset = new Date().getTimezoneOffset();

或者以小时计算差异:

var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;

Mozilla Reference

  

时区偏移是UTC和之间的差异,以分钟为单位   当地时间。请注意,这意味着如果偏移是正数   当地时区落后于UTC,如果未来则为负。例如,   如果您的时区是UTC + 10(澳大利亚东部标准时间), - 600   将被退回。夏令时会阻止此值   即使对于给定的区域设置也是常量。