And*_*i M 21 javascript c# client-side
在C#中你可以使用
System.TimeZone.CurrentTimeZone.GetUtcOffset(someDate).Hours
Run Code Online (Sandbox Code Playgroud)
但是如何在javascript中获取特定日期(Date对象)的UTC小时数?
All*_*lan 33
瓦迪姆的答案可能会在分裂后得到一些小数点60; 并非所有偏移都是60分钟的完美倍数.这是我用来格式化ISO 8601字符串值的内容:
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;
}
Run Code Online (Sandbox Code Playgroud)
这将返回"+01:30"或"-05:00"之类的值.如果需要进行计算,您可以从我的示例中提取数值.
请注意,getTimezoneOffset()返回与UTC的分钟数差异,因此该值似乎与ISO 8601等格式所需的相反(否定).因此我使用的原因Math.abs()(这也有助于不会得到负面分钟)以及我如何构建三元组.
我强烈建议使用moment.js库来获取与时间和日期相关的Javascript代码.
在这种情况下,您可以通过运行以下方式获得ISO 8601格式的UTC偏移:
> moment().format("Z")
> "-08:00"
Run Code Online (Sandbox Code Playgroud)
<script type="text/javascript">
var d = new Date()
var gmtHours = -d.getTimezoneOffset()/60;
document.write("The local time zone is: GMT " + gmtHours);
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17648 次 |
| 最近记录: |