js 动态校验开始结束时间的实现代码

论坛 期权论坛 脚本     
niminba   2021-5-15 19:46   22   0

很多时候要动态校验开始结束时间,每次都要写一次,太麻烦,以备后面拷贝使用,

代码作用简介:

开始结束时间,联动,开始时间前后移动,对应结束时间相应变化,时间差30天

html:

<input type="date" placeholder="请输入(From)..." id="txtStartDate" value="${startDate }" onblur="onblurStartDate();" />
<input type="date" placeholder="请输入(To)..." id="txtEndDate" value="${endDate }" onblur="onblurEndDate();" />

js:

<script type="text/javascript">
/**
 * 动态校验开始时间
 * @returns
 */
function onblurStartDate() {
 var startDateStr = $("#txtStartDate").val();
 var nowDate = new Date().toISOString().substring(0, 10); //当前时间截取操作
 var endDateStr = addDate(startDateStr, 29);
 
 if(startDateStr >= nowDate) {
  alert("开始时间不能大于等于今天!");
  var endDate = addDate(nowDate, -29);
  $("#txtStartDate").val(endDate);
  return;
 }
 if(endDateStr >= nowDate) {
  $("#txtEndDate").val(nowDate);
  return false;
 }
 $("#txtEndDate").val(endDateStr);
}
 
/**
 * 动态校验结束时间
 * @returns
 */
function onblurEndDate() {
 var endDateStr = $("#txtEndDate").val();
 var nowDate = new Date().toISOString().substring(0, 10); //当前时间截取操作
 
 if(endDateStr > nowDate) {
  alert("结束时间不能大于今天!");
  $("#txtEndDate").val(nowDate);
  var startDate = addDate(nowDate, -29);
  $("#txtStartDate").val(startDate);
  return false;
 }
 var startDateStr = addDate(endDateStr, -29);
 $("#txtStartDate").val(startDateStr);
}
 
/**
 * 日期加减法 格式:addDate('2017-01-11',20)
 * @param date计算开始的日期
 * @param days需要加的天数 (正数加,负数减)
 * @returns 计算后的时间
 */
function addDate(date, days) {
 var d = new Date(date);
 d.setDate(d.getDate() + parseInt(days));
 var m = d.getMonth() + 1;
 m = parseInt(m) < 10 ? ('0' + m) : m;
 var day = parseInt(d.getDate()) < 10 ? ('0' + d.getDate()) : d.getDate();
 return d.getFullYear() + '-' + m + '-' + day;
}
</script>

java后台:

/**
 *  页面初始化+指定时间
 * @param request
 * @param response
 * @return
 */
@RequestMapping(value = { "/pageInit.do" })
protected String pageInit(final HttpServletRequest request, final HttpServletResponse response) {
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 request.setAttribute("startDate", sdf.format(TimeUtils.addDate(new Date(), -29)));
 request.setAttribute("endDate", sdf.format(new Date()));
 return "taskManage/taskindex";
}

总结

到此这篇关于js 动态校验开始结束时间的文章就介绍到这了,更多相关js 动态校验时间内容请搜索社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持社区!

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP