Javascript日期对象时区问题 - 不同的时区

时间:2013-10-21 10:07:53

标签: javascript date datetime

我正在使用带有“友好”显示的日期/时间选择器作为我想要转换为javascript日期对象的输入值。选择日期后,它将采用以下格式:

  

2013年10月21日09:00

然后我尝试使用以下函数转换为javascript对象:

function pickerDateToJavascriptObj(dateIn)
{
    dateIn = dateIn.split(/[- :]/);
    dateIn[0] = getMonthNumber(dateIn[0]);
    outDate = new Date(dateIn[2],dateIn[0],dateIn[1],dateIn[4],dateIn[5], "00");
    console.log(outDate);
    return outDate; 
}

我必须在我的页面上选择“从'日期和'到'日期。当我提交表单和console.log outDates时,日期被正确转换为对象,但是它们始终具有不同的时区。对于'from'日期,我进入我的控制台:

Date {Mon Oct 21 2013 09:00:00 GMT+0100 (GMT Standard Time)}

和'到'日期,我得到了:

Date {Thu Oct 31 2013 09:00:00 GMT+0000 (GMT Daylight Time)}

注意两个日期的标准时间和日光时间之间的差异。

可能导致这种差异的原因是什么?

以下是2个输入:

<input type="text" placeholder="Start Date/Time" name="eventStart" id="eventStart" class="dateTimePicker" readonly="readonly">
<input type="text" placeholder="End Date/Time" name="eventEnd" id="eventEnd" class="dateTimePicker" readonly="readonly">

2 个答案:

答案 0 :(得分:2)

看起来你在英国并使用Firefox。

夏令时(又名“英国夏令时”)ends on Oct 27th,因此您的开始日期是在开关之前,结束日期之后。

您还在见证a bug in FireFox,因为虽然偏移正确,但名称会被反转。

答案 1 :(得分:0)

获取格式为这样的日期(而不是手动解析):

var myDate= $("#datepicker").datepicker({ dateFormat: 'dd-mm-yy' }).val();

API文档:http://api.jqueryui.com/datepicker/#option-dateFormat

获取如下格式的时间:

var myTime = $.datepicker.parseTime('HH:mm:ss', $("#datepicker").val());

API文档:http://trentrichardson.com/examples/timepicker/#tp-formatting