Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JQuery datepicker避免时区问题_Javascript_Jquery_Datepicker - Fatal编程技术网

Javascript 如何使用JQuery datepicker避免时区问题

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。我怀疑这与时区有关

我在输入表单中使用datepicker,并通过json将结果发送到数据库。我使用此行从日期选择器获取日期:

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