1

我正在使用带有“友好”显示的日期/时间选择器来显示我试图转换为 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 时,日期会正确转换为对象,但是它们始终具有不同的时区。对于“开始”日期,我进入控制台:

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">
4

2 回答 2

2

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

夏令时(又名“英国夏令时”)于 10 月 27 日结束,因此您的开始日期在切换之前,结束日期在之后。

您还目睹了 FireFox 中的一个错误,因为虽然偏移量是正确的,但名称却相反。

于 2013-10-21T16:51:38.790 回答
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

于 2013-10-21T10:20:39.957 回答