Я хочу проверить, когда дата и время выбраны после текущей даты и времени - PullRequest
1 голос
/ 18 ноября 2011

У меня есть два текстовых поля только для чтения, одно текстовое поле связано с указателем даты jquery, а другое текстовое поле связано с jquery средства выбора времени.Самое замечательное в jquery datepicker заключается в том, что я могу варьировать свои даты, чтобы пользователь не мог выбирать даты до текущей даты.Но средство выбора времени Jquery не может быть ранжировано, поэтому время предшествует текущему времени.

Из-за этого существует вероятность того, что пользователь может выбрать текущую дату, но время до текущего времени.Очевидно, это означает, что выбранное время прошло текущее время текущего дня, что я не хочу, чтобы это произошло.Таким образом, требуется проверка, если текстовое поле даты и текстовое поле времени прошло после текущей даты и времени, а затем появится сообщение о том, что «Дата и время вы выбрали раньше текущей даты и времени», в противном случае, если время и дата вместе истеклитекущие дата и время, затем отобразите «».

Как я могу это сделать.Ниже моя лучшая попытка, но я не смог заставить ее работать.

<head>
            <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
            <title>Create a Session</title>
                    <script type="text/javascript">

     function validation() {
                    var dateTextO = document.getElementById("datepicker");
                    var timeTextO = document.getElementById("timepicker");
                    var errDateTimeMsgO = document.getElementById("dateTimeAlert")

    var currentDate = new Date()
        var day = currentDate.getDate()
        var month = currentDate.getMonth() + 1
        var year = currentDate.getFullYear()

        var currentTime = new Date()
        var hours = currentTime.getHours()
        var minutes = currentTime.getMinutes()
        if (minutes < 10){
        minutes = "0" + minutes
        }
        if (hours < 10){
        hours = "0" + hours
        }

        if((dateTextO < currentDate) && (timeTextO < currentTime)){
            errDateTimeMsgO.innerHTML = "The Date and Time you have selected is before the Current Date and Time";
        } else {
            errDateTimeMsgO.innerHTML = "";
        }

            }
    </script>
    </head>

    <body>
    <form action="create_session.php" method="post" name="sessionform">
    <p><strong>4: Date:</strong> <input type="text" id="datepicker" readonly="readonly"></p>
                <p><strong>5: Time:</strong> <input type="text" id="timepicker" readonly="readonly"><span class="timepicker_button_trigger"><img src="Images/clock.gif" alt="Decrease" /></span></p>
                <div id="dateTimeAlert"></div>
    </form>
    </body>

1 Ответ

0 голосов
/ 18 ноября 2011

на самом деле дата, сгенерированная new Date(), выглядит примерно так

Wed Jul 20 2011 19:09:46 GMT+0530 (IST)

, но ваше время выбора даты может быть примерно таким:

28-07-2011

они в двух разных форматах.поэтому вы не можете делать это вместе, поэтому вы должны получить их в одном формате

var checkindatestr = document.getElementById("datepicker");
var dateParts = checkindatestr.split("-");

var checkindate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);
var now = new Date();
var difference = now - checkindate;

, таким образом вы можете найти разницу в 2 дня.

я найду способ и расскажу вам, каксравнить 2 раза .........: D

ОБНОВЛЕНИЕ

    var checkindatestr = document.getElementById("datepicker"); 
    var dateParts = checkindatestr.split("-");  
    var checkindate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]); 
    var nowdate = new Date(); 
    var differenceDate = parseInt(nowdate) - parseInt(checkindate); 

    var checkintimestr = document.getElementById("timepicker"); 
    var timeParts = checkindatestr.split(":"); 

    var currentTime = new Date(); 
    var hours = currentTime.getHours();
    var minutes = currentTime.getMinutes();

    if(( differenceDate >= 0) && (parseInt(hours) >= parseInt(timeParts[0]))  && (parseInt(minutes) > parseInt(timeParts[1]) )){
        errDateTimeMsgO.innerHTML = "The Date and Time you have selected is before the Current Date and Time";
    } else {
        errDateTimeMsgO.innerHTML = "";
    }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...