首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在javascript中获取协调时差(类似于C#中的TimeZoneInfo.GetUtcOffset )

如何在javascript中获取协调时差(类似于C#中的TimeZoneInfo.GetUtcOffset )
EN

Stack Overflow用户
提问于 2012-02-05 21:19:46
回答 2查看 25K关注 0票数 27

在C#中,您可以使用

代码语言:javascript
复制
System.TimeZone.CurrentTimeZone.GetUtcOffset(someDate).Hours

但是如何在javascript中获取某个日期(Date对象)的UTC偏移量(小时)?

EN

回答 2

Stack Overflow用户

发布于 2012-10-23 00:59:08

Vadim的答案可能会在除以60后得到一些小数点;并不是所有的偏移量都是60分钟的完美倍数。下面是我用来格式化ISO 8601字符串值的方法:

代码语言:javascript
复制
function pad(value) {
    return value < 10 ? '0' + value : value;
}
function createOffset(date) {
    var sign = (date.getTimezoneOffset() > 0) ? "-" : "+";
    var offset = Math.abs(date.getTimezoneOffset());
    var hours = pad(Math.floor(offset / 60));
    var minutes = pad(offset % 60);
    return sign + hours + ":" + minutes;
}

这将返回类似"+01:30“或"-05:00”的值。如果需要进行计算,您可以从我的示例中提取数值。

请注意,getTimezoneOffset()返回的是与协调世界时相差的分钟数,因此该值似乎与ISO8601等格式所需的值相反(取反)。因此,我为什么使用Math.abs() (这也有助于避免出现负分钟),以及我是如何构造三元的。

票数 40
EN

Stack Overflow用户

发布于 2012-02-05 21:25:50

代码语言:javascript
复制
<script type="text/javascript">

var d = new Date()
var gmtHours = -d.getTimezoneOffset()/60;
document.write("The local time zone is: GMT " + gmtHours);

</script>
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9149556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档