我正在使用带有“友好”显示的日期/时间选择器作为我想要转换为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">
答案 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