我当前处于UTC +2时区(的黎波里)。在ISO字符串中分配日期值时,我怀疑使用DateLightSaving设置会调整日期值,并且日期值本身也会发生更改。请检查下面的链接以重现该问题。
链接:https://codepen.io/anon/pen/bjbodJ
$(function() {$( "#datepicker" ).datepicker(); $( "#datepicker" ).datepicker("setDate", new Date("1937-02-25T22:00:00.000Z"));});
在边缘浏览器中,该值已正确调整(Firefox,IE也返回正确的值)。但是,价值只有在Google Chrome浏览器中才能更改,在最新版本中也是如此,在旧版本(65)上也可以正常工作。
边缘工作截图:
Chrome问题屏幕截图:
在以上两个屏幕截图中,您发现日期值已在Chrome浏览器中更改了1天。而在Edge浏览器中显示相同的值(对于mozilla和IE也可以)。
任何人都可以提出建议。
答案 0 :(得分:0)
从1920年到1959年,的黎波里为+1:00。
如果您想要某个特定日期的午夜当地时间,可以提出要求,而不必试图猜测该时间点的UTC偏移量:
> new Date([1937,2,26]).toISOString()
'1937-02-25T23:00:00.000Z'
> new Date([1919,2,26]).toISOString()
'1919-02-25T23:07:16.000Z'