我正在使用一个日期/时间选择器,该选择器带有"友好"显示的输入值,我正在尝试将其转换为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;
}
我必须在我的页面上选择日期选择"开始"日期和"结束"日期。当我提交表单和控制台.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 个日期的标准时间和夏令时之间的差异。
造成这种差异的原因是什么?
以下是 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">
看起来您在英国并使用Firefox。
夏令时(又名"英国夏令时")在 10 月 27 日结束,因此您的开始日期在切换之前,结束日期在切换之后。
您还目睹了FireFox中的一个错误,因为虽然偏移量是正确的,但名称是颠倒的。
获取这样格式化的日期(而不是手动解析):
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