У меня есть простая проверка, которая должна препятствовать вводу/выходу Time In/Out неправильных значений. Таким образом, если пользователь выбрать, например:новый Дата() 12/24 часовой формат JavaScript?
12:30 PM = Time In
и 12:15 PM = Time Out
Они получат сообщение на экране 'Time Out can not be less or equal than Time In'
.
Моя проверка работает отлично, но в одном случае. Например, пользовательский выбор:
Time In: 12:30 PM
и Time Out: 1:00 PM
Они нажмите кнопку Сохранить и оповещение всплывающего сообщения. Я обнаружил, что мой код был что-то вроде этого производства:
Time In: Thu Sep 15 2016 00:29:00 GMT-0500 (Central Standard Time)Time Out: Wed Sep 14 2016 13:29:00 GMT-0500 (Central Standard Time)
создать новую дату Time In и тайм-аут значения Я использовал JavaScript. Похоже, мой код устанавливает 00 для 12 часов в new Date()
. Поэтому мой вопрос заключается в том, как предотвратить это или есть какой-либо другой способ в JavaScript, чтобы исправить эту проблему. Вот мой код, где я беру два введенные значения при переходе на новую дату():
var timeIn = document.getElementById('timeIn').value;
var timeOut = document.getElementById('timeOut').value;
var today = new Date(),
curYear = today.getFullYear(),
curDate = today.getDate(),
curMonth = today.getMonth(),
defaultTimeIn = timeIn.split(":"),
defaultTimeOut = timeOut.split(":"),
defaultHourIn = parseInt(defaultTimeIn[0], 10),
defaultHourOut = parseInt(defaultTimeOut[0], 10),
defaultMinAMPMIn = defaultTimeIn[1].split(" "),
defaultMinAMPMOut = defaultTimeOut[1].split(" "),
defaultMinIn = defaultMinAMPMIn[0],
defaultMinOut = defaultMinAMPMOut[0],
defaultAMPMIn = defaultMinAMPMIn[1],
defaultAMPMOut = defaultMinAMPMOut[1];
if (defaultAMPMIn == "PM") {
defaultHourIn += 12; //hours are in 24-hour format (0-23)
}
if (defaultAMPMOut == "PM") {
defaultHourOut += 12; //hours are in 24-hour format (0-23)
}
var compTimeIn = new Date(curYear, curMonth, curDate, defaultHourIn, defaultMinIn);
var compTimeOut = new Date(curYear, curMonth, curDate, defaultHourOut, defaultMinOut);
if (compTimeIn >= compTimeOut) {
alert("'Time Out' can't be less or equal to 'Time In'");
}
Будет ли это работать должным образом с другим языком? – ppeterka
@ppeterka Я не уверен. –
Вы можете взглянуть на http://momentjs.com/. Это, вероятно, лучшая библиотека для управления датой/временем в javascript. Вы сэкономите много хлопот с ним. – Paulooze