HTML输入类型日期和时间没有时区偏移

时间:2016-04-07 20:03:51

标签: javascript angularjs html5 ionic-framework

我正在使用HTML5输入日期和输入时间进行离子开发。默认情况下,它绑定为ISO Date String并更改为UTC日期时间。我认为当用户选择2016-06-06日期时,它可能已成为2016-06-07或2016-06-05,具体取决于时区偏移。输入类型=时间的类似情况。

我的目的是使ISO字符串中的日期保持用户选择而不是用时区差异来抵消它。

类似输入datetime-local,但似乎移动设备不支持datetime-local。

我发现输入类型=“日期本地”或“时间本地”。

2 个答案:

答案 0 :(得分:3)

首先,有趣的是type =" datetime"已经removed from the HTML5 standard而只是" datetime-local"存在,但似乎不是每个移动浏览器都实现它。对于type =" date",它没有时间组件,因此只需直接使用UTC日期即可。没错,将UTC日期d转换为本地有点荒谬:

  • 新日期(d.toLocaleDateString())

  • d.setMinutes(d.getMinutes()+d.getTimezoneOffset())

  • new Date(+d+d.getTimezoneOffset()*60000)

但是你能做什么?

答案 1 :(得分:-2)

Javascript日期始终为UTC,但您可以获取本地值以及此处显示的内容:http://www.w3schools.com/jsref/jsref_obj_date.asp

getUTCHours()根据世界时(0-23)返回小时 getHours()返回小时(从0到23)

第一个将始终从输入的内容转换为UTC。第二个将使用时区偏移来计算应该返回的内容。