Javascript 如何使用JQuery datepicker避免时区问题
我在输入表单中使用datepicker,并通过json将结果发送到数据库。我使用此行从日期选择器获取日期:Javascript 如何使用JQuery datepicker避免时区问题,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,我在输入表单中使用datepicker,并通过json将结果发送到数据库。我使用此行从日期选择器获取日期: date = $("#datepicker").datepicker('getDate'); 现在,我希望返回2014-04-03T00:00:00.000Z 但实际上它返回的是2014-04-02T22:00:00.000Z 请注意两个小时的差异,这也无意中改变了月份的日期。我不使用小时和更小的时间单位。然而,我确实希望日期是正确的,不要在我的代码中添加可怕的+1。我怀疑这与时区有关
date = $("#datepicker").datepicker('getDate');
现在,我希望返回2014-04-03T00:00:00.000Z
但实际上它返回的是2014-04-02T22:00:00.000Z
请注意两个小时的差异,这也无意中改变了月份的日期。我不使用小时和更小的时间单位。然而,我确实希望日期是正确的,不要在我的代码中添加可怕的+1
。我怀疑这与时区有关,但我似乎无法在文档或其他在线问答中找到解决方案。谁能给我指一下正确的方向吗?如果有必要的话,我的时区是格林尼治标准时间+1
谢谢:)我刚才解决了这个问题,但忘了发布答案。 检索
日期后
,我就是这样修复的:
date.setMinutes(date.getMinutes() - date.getTimezoneOffset());
瞧,我想不出你在那里做了什么,所以我想出了一个很棒的解决方案 我在UNIX中获取alt字段的值:
$( function() {
$( "#datepicker" ).datepicker({
altField: "#alternate",
altFormat: "@",
});
结果有点奇怪,多了3个0,比我的时区晚了一天。
所以我找出了区别并加上了它
var a = document.getElementById("alternate").value; // take alternative field UnixTimeStamp value
a = a.slice(0, -3); // get rid of 3 extra 0's
a = +a + +57000; // convert to Thai time
您的操作系统或浏览器时区配置是否正确?如果要设置完整日期,则“我选择的日期”显示的时间将减少1。不使用-GMT