Проверка временного диапазона с использованием jQuery

У меня есть страница с 2 текстовыми полями (время начала и время окончания), я использую элемент времени HTML5, теперь я хочу проверить, время начала всегда меньше времени окончания, в настоящее время я использую скрипт ниже для проверки

function checkTimings(source, argument) {
                    var sTime = new Date("01/01/0001 " + $("[id$=txtStartTimings]").val());
                    var eTime = new Date("01/01/0001 " + $("[id$=txtEndTimings]").val());
                    argument.IsValid = sTime < eTime;
                }

Это работает, когда оба тайминга - AM или PM, но есть один случай, когда время начала будет PM, а время окончания будет AM, например с 11.45 до 12.15, здесь проверка не пройдена.

Кто-нибудь может подсказать, как мы могли бы справиться с этой ситуацией?

2 ответа

Можно ли преобразовать их в 24-часовой формат перед выполнением расчетов?

function checkTimings(source, argument) {
                var sTime = new Date("01/01/0001 " + $("[id$=txtStartTimings]").GetHours());
                var eTime = new Date("01/01/0001 " + $("[id$=txtEndTimings]").GetHours());
                argument.IsValid = sTime < eTime;
            }

Вы можете напрямую передать дату в конструкторе данных, чтобы получить фактическую дату.

function checkTimings(source, argument) {
                    var sTime = new Date($("[id$=txtStartTimings]").val());
                    var eTime = new Date($("[id$=txtEndTimings]").val());
                    argument.IsValid = sTime < eTime;
            }

если проблема не устраняется, просто измените формат вашей даты в текстовом поле или вы также можете проанализировать дату в функции js.

Другие вопросы по тегам