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


Posted in Javascript onMay 25, 2020

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

代码作用简介:

开始结束时间,联动,开始时间前后移动,对应结束时间相应变化,时间差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 动态校验时间内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
IE6下opacity与JQuery的奇妙结合
Mar 01 Javascript
网页右侧悬浮滚动在线qq客服代码示例
Apr 28 Javascript
jQuery中slideUp()方法用法分析
Dec 24 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
Feb 17 Javascript
JavaScript中setFullYear()方法的使用详解
Jun 11 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 Javascript
js 奇葩技巧之隐藏代码
Aug 11 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
Sep 14 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
Mar 15 Javascript
Vue路由之JWT身份认证的实现方法
Aug 26 Javascript
Vue项目打包部署到iis服务器的配置方法
Oct 14 Javascript
基于JavaScript实现省市联动效果
Jun 22 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
May 25 #Javascript
Node.js API详解之 repl模块用法实例分析
May 25 #Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
May 24 #Javascript
如何使用vue slot创建一个模态框的实例代码
May 24 #Javascript
使用React代码动态生成栅格布局的方法
May 24 #Javascript
ES6对象操作实例详解
May 23 #Javascript
ES6函数和数组用法实例分析
May 23 #Javascript
You might like
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
2008/08/14 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
jquery遍历checkbox介绍
2014/02/21 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
Vue程序调试的方法
2019/06/17 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
Django日志模块logging的配置详解
2017/02/14 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
给我一面国旗 python帮你实现
2019/09/30 Python
Python Selenium参数配置方法解析
2020/01/19 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
2014年宣传部个人工作总结
2014/12/06 职场文书
如何写辞职书
2015/02/26 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL