日期和时间到期逻辑不起作用

时间:2017-02-08 09:01:52

标签: javascript jquery

我正在尝试检查过期的日期和时间逻辑。时间为12小时时钟格式。我想检查日期是否为今天,那么用户应该无法选择过期时间。但是,如果选择的日期是明天,则可以选择任何时间。如果日期为yesterady,则用户不能选择日期。

我正在尝试检查jquery,但不确定如何检查。日期的格式为" MM / DD / YYYY",时间格式为" hh:mm a"。允许过期时间为5分钟。我试过这段代码:

     var targetTime = new Date().setMinutes(-5).valueOf();

            var today = new Date();
            var dd = today.getDate();
            var mm = today.getMonth() + 1; //January is 0!
            var yyyy = today.getFullYear();

            if (dd < 10) {
                dd = '0' + dd
            }

            if (mm < 10) {
                mm = '0' + mm
            }

            today = mm + '/' + dd + '/' + yyyy;

            if (jQuery('#startDatepicker').find("input").val() == today) {

                var currentStartDate = jQuery('#startDatepicker').find("input").val();
                var currentStartTime = jQuery('#startTimepicker').find("input").val();

                var UserSelectedTime = getAsDate(currentStartDate, currentStartTime).getTime();

                if (UserSelectedTime <= targetTime) {
                    alert("Start Time has expired. Please select a valid Start Time");
                }
            }

 function getAsDate(day, time) {
        var hours = Number(time.match(/^(\d+)/)[1]);
        var minutes = Number(time.match(/:(\d+)/)[1]);
        var AMPM = time.match(/\s(.*)$/)[1];
        if (AMPM == "pm" && hours < 12) hours = hours + 12;
        if (AMPM == "am" && hours == 12) hours = hours - 12;
        var sHours = hours.toString();
        var sMinutes = minutes.toString();
        if (hours < 10) sHours = "0" + sHours;
        if (minutes < 10) sMinutes = "0" + sMinutes;
        time = sHours + ":" + sMinutes + ":00";

        var d = new Date(day);
        var n = d.toISOString().substring(0, 10);
        var newDate = new Date(n + "T" + time);
        return newDate;
    }

如果当前日期是今天,如果当前时间是凌晨4:00,如果用户选择了凌晨3:00,则时间已过,但警报消息未显示。 如何解决这个问题? 感谢

0 个答案:

没有答案