function NewDate(dateTime) { var fulldate = dateTime.split('-'); var day = fulldate[2].split(" "); var time = day[1].split(":"); var date = new Date(); date.setFullYear(fulldate[0]); date.setMonth(fulldate[1] - 1); date.setDate(day[0]); date.setHours(time[0], time[1], 0, 0); return date; } var sttime, edtime; var startTime = document.getElementById("start_time").value; var endTime = document.getElementById("end_time").value; sttime = NewDate(startTime); edtime = NewDate(endTime);
在使用jquery-ui-timepicker控件時遇到了月份選擇時控件顯示沒有正確切換的問題,查看了下發現報錯信息為Cannot read property 'split' of undefined,說明在調用NewDate函數時參數“dateTime”類型不正確,沒'split'屬性。
然后想了下,其實就是dateTime為空。因為在啟用控件時,
<input type="text" id="start_time">
<input type="text" id="end_time">
兩個的輸入框都還為空值,導致調用的NewDate(dateTime)函數報錯,所以timepicker控件異常。假如空值判斷即可
var sttime, edtime; var startTime = document.getElementById("start_time").value; var endTime = document.getElementById("end_time").value; if (!startTime || !endTime) { return; } else { sttime = NewDate(startTime); edtime = NewDate(endTime); }