比较日期——结束日期应该大于开始日期
Compare dates - End date should be greater than start date
我想不出一个逻辑来实现结束日期总是大于开始日期。这是我的视图代码,有两个字段事件结束和事件开始。尝试用jQuery实现如Validate中所示的结束日期大于开始日期,但失败了。如何实现这一点?
<div class="clearfix"></div>
<div class="control-group form-group">
<label class="control-label col-md-4" style="text-align:left">Event Start</label>
<div class="controls" style="margin-left:0px">
<div class="col-md-3 date" data-date="12-02-2012" data-date-format="dd-mm-yyyy" data-date-viewmode="years">
<input class="m-wrap col-md-11 m-ctrl-medium datepicker form-control" required="required" name="starttimedate" id="ed_starttimedate" type="text" value="<?php echo $_POST['starttime']?date('d-m-Y',$_POST['starttime']):date('d-m-Y'); ?> " />
<!-- <span class="add-on"><i class="fa fa-calendar" style="margin-top:5px"></i></span> -->
</div>
<div class="col-md-1"> </div>
<div class="col-md-3 bootstrap-timepicker-component">
<input class="m-wrap col-md-11 m-ctrl-medium timepicker-default form-control" required="required" value="<?php echo date('h:i A',$_POST['starttime']);?>" name="starttimetime" id="ed_starttimetime" type="text" />
<!-- <span class="add-on"><i class="fa fa-clock-o" style="margin-top:5px"></i></span>-->
</div>
<div class="clearfix"></div>
</div>
</div>
<div class="clearfix"></div>
<div class="control-group form-group">
<label class="control-label col-md-4" style="text-align:left">Event End</label>
<div class="controls ">
<div class="col-md-3 date" data-date="12-02-2012" data-date-format="dd-mm-yyyy" data-date-viewmode="years">
<input class="m-wrap col-md-11 m-ctrl-medium datepicker form-control" required="required" name="endtimedate" id="ed_endtimedate" type="text" value="<?php echo $_POST['endtime']?date('d-m-Y',$_POST['endtime']):date('d-m-Y'); ?> " />
<!--<span class="add-on"><i class="fa fa-calendar" style="margin-top:5px"></i></span>-->
</div>
<div class="col-md-1"> </div>
<div class="col-md-3 bootstrap-timepicker-component">
<input class="m-wrap col-md-11 m-ctrl-medium timepicker-default form-control" required="required" value="<?php echo date('h:i A',$_POST['endtime']);?>" name="endtimedatetime" id="ed_endtimedatetime" type="text" />
<!-- <span class="add-on"><i class="fa fa-clock-o" style="margin-top:5px"></i></span>-->
</div>
</div>
脚本:<script>
$("#ed_endtimedate").change(function() {
var startDate = document.getElementById("ed_starttimedate").value;
var endDate = document.getElementById("ed_endtimedate").value;
if ((Date.parse(ed_endtimedate) <= Date.parse(ed_starttimedate))) {
alert("End date should be greater than Start date");
document.getElementById("ed_endtimedate").value = "";
}
});
</script>
在您的if-case中,您实际上试图引用输入字段的id,而不是您定义的两个变量。会出现错误,因为脚本将尝试读取两个未定义的变量。参见下面的修复
<script>
$("#ed_endtimedate").change(function() {
var startDate = document.getElementById("ed_starttimedate").value;
var endDate = document.getElementById("ed_endtimedate").value;
if ((Date.parse(endDate) <= Date.parse(startDate))) {
alert("End date should be greater than Start date");
document.getElementById("ed_endtimedate").value = "";
}
});
</script>
重读你的代码后,我发现你使用了一个无效的日期格式。日期格式的ISO标准是yyyy-mm-dd,但您使用的是dd-mm-yyyy。
<script>
$("#ed_endtimedate").change(function() {
var startDate = document.getElementById("ed_starttimedate").value;
var endDate = document.getElementById("ed_endtimedate").value;
if ((Date.parse(ed_endtimedate) <= Date.parse(ed_starttimedate))) {
alert("End date should be greater than Start date");
document.getElementById("ed_endtimedate").value = "";
}
});
</script>
<script>
("#ed_endtimedate").change(function() {
var startDate = document.getElementById("ed_starttimedate").value;
var endDate = document.getElementById("ed_endtimedate").value;
if ((Date.parse(endDate) <= Date.parse(startDate))) {
alert("End date should be greater than Start date");
document.getElementById("ed_endtimedate").value = "";
}
});
</script>
相关文章:
- 当天数大于月份的天数时,javascript日期会创建奇怪的日期
- 如果输入日期大于js中定义的日期,如何发出警报
- jQuery DataTables yadcf大于等于(日期)
- 如何在引导程序中比较结束日期和开始日期,以确保结束日期大于开始日期
- 如何使用下拉列表验证结束日期必须大于开始日期
- 如何将小时 javascript 日期设置为大于 23 并使用 .getHours() 函数检索它们
- 检查日期是否大于一个月的第一个周结束日期
- 如果日期大于现在,则通过jQuery添加类
- 使用 Javascript 日期,获得 0 或大于 31
- 若在第一个字段中选择了日期,则第二个字段的日期应大于第一个
- 如果输入日期大于今天,则抛出错误
- 如何使用angularjs检查所选日期和时间是否小于当前日期或大于当前日期和时间
- Yii引导日期选择器行中的结束日期应大于开始日期
- JQuery/Javascript:数组中的开始和结束日期,结束日期必须大于开始日期
- 正在检查当前日期时间是否大于或等于数据库中的日期和时间
- 如果一个日期大于另一个日期,返回警告
- javascript中的第二个日期大于第一个日期
- 如何检查日期大于或小于javascript中的条件
- Node.js记录日期大于当前客户端日期
- 如果到达日期大于,则更新出发日期