我想验证当日期和时间选择是过去的当前日期和时间
I want to validate when date and time selected is past current date and time
我有两个只读文本框,一个文本框与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>
实际上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次.........: 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 = "";
}
}
相关文章:
- Java脚本时间添加
- primefaces日历可以禁用过去的日期和时间吗
- 计算日期选择器+时间选择器是否在东部标准时区的过去
- 使用 JavaScript Date 对象处理未来和过去的日期和时间
- 引导日期时间选取器禁用过去的时间
- 有没有办法将时间戳与过去两天进行比较
- 我想在代码点火器的datetimepicker中禁用过去的时间
- 禁用过去的时间
- jQuery日期时间选择器don'不允许选择过去的时间
- 启动日期时间选择器startDate不会禁用过去的日期
- Javascript时间戳,如果10分钟过去了
- 如果在pickatime上选择当前日期,则禁用过去时间
- 我想验证当日期和时间选择是过去的当前日期和时间
- 我想验证何时从下拉列表中选择的时间是过去的当前时间
- 没有时间的过去数字日期
- DateTimePicker -禁用一天中已经过去的时间(JQuery)
- 反复调用一个函数,直到它的承诺被解决,或者直到设置的超时时间过去
- RxJs:只有在一段时间过去后才有新的值
- 用于“;从这个时间戳起已经过去了多少秒”;
- 将过去日期和日期持续时间禁用为三个月