Kev*_*vin 6 javascript timezone datetime
我的ISO8601日期包含时区偏移量(见下文).当我从中创建一个Date对象时,日期对象将转换为我的时区(当前为GMT),时区偏移量为0.有没有办法让Date()构造函数保留时区偏移量?
var date = new Date("2012-01-17T12:55:00.000+01:00");
console.log(date.toString());
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
"Tue Jan 17 2012 11:55:00 GMT+0000 (GMT)"
Run Code Online (Sandbox Code Playgroud)
我想要的输出是:
"Tue Jan 17 2012 12:55:00"
Run Code Online (Sandbox Code Playgroud)
不是内置Date对象,因为他们只知道本地(由用户的浏览器和/或操作系统设置定义)和UTC.您可以从该类具有的许多克隆方法中看到这一点(例如,getHours/ getUTCHours).
getTimezoneOffset是你真正拥有的唯一时区信息,但它也是本地的,并且可能只会+0再次给你(或者在我的情况下为+6):
var date = new Date("2012-01-17T12:55:00.000+01:00");
console.log(date.getTimezoneOffset() / 60.0);
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用timezone-js(或其中一个分叉),但您需要知道Olson时区名称而不仅仅是GMT/UTC偏移:
var date = new new timezoneJS.Date('2012-01-17T12:55:00.000+01:00', 'Europe/Brussels');
alert(date.getTimezoneOffset() / 60.0); // +1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13880 次 |
| 最近记录: |