我有两个只读文本框,一个文本框与jquery datepicker链接,另一个文本框与timepicker 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>
答案 0 :(得分:0)
实际上new Date()
生成的日期是这样的
Wed Jul 20 2011 19:09:46 GMT+0530 (IST)
但你的日期选择时间可能是这样的
28-07-2011
它们有两种不同的格式。所以你不能comapare,所以你必须得到一种格式
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 = "";
}
}