是否有任何日期选择器只显示提供给它的内容并忽略当地时区?
我们当前正在使用angular-strap
的日期选择器,并在更改计算机的本地时区时进行data-min-date
更改。提供的data-min-date
只是一个固定的日期,但不知何故,日期选择器会受到当地时区的影响。
示例:
提供日期:2016-12-23T16:33:03+08:00
ISO8601 Format
在UTC-12:00
22-December-2016
已停用,因此最低为23-December-2016
。
在UTC+08:00
23-December-2016
已停用,因此最低为24-December-2016
。
不确定哪一个是预期日期,但预期结果应该是自提供固定日期以来不会有任何变化。
我有什么遗漏或任何其他日历只显示给它的东西吗?
编辑1 :通过更改计算机的本地时区来测试日期功能是否合法?是否与当地或自然位于该时区的情况相同或不同?
编辑2 :我们已使用node server
从momentjs
生成了日期时间。 var serverTime = moment().utcOffset(8);
只是angular-strap
以奇怪的方式处理我们提供的日期。
编辑3 :添加属性data-timezone="utc"
也无济于事。
编辑4 :我们发现该插件使用date = new Date(value);
,其中value
是我们传递的日期。它返回类似Thu Dec 22 2016 21:29:54 GMT-1200 (Local Standard Time)
的内容,它清楚地使用了本地时区。并且没有条件检查是否提供了timezone="utc"
。我们还尝试直接分配date = Thu Dec 22 2016 21:29:54 GMT-1200 (Local Standard Time)
但插件中断了。
答案 0 :(得分:0)
我们做了一个黑客。我们分叉插件并更改了处理min-date
的代码。
可以找到更改历史here。我们添加了片段:
var a = new Date(value); // value - date we are passing
var b = a.getTime() + (a.getTimezoneOffset() * 60000); // no idea what this is
date = new Date(b + (3600000*(8))); // the 8 is the timezone we want
new Date(value)
的问题在于它受当地时区的影响。