公司做网站有问题怎么维权谷歌google play官网下载
校验日期型字段是否符合要求
- 1、需求分析及展示效果
- 1.1、需求确认
- 1.2、展示效果
- 2、实现方法
- 3、扩展知识——js日期相关函数
1、需求分析及展示效果
1.1、需求确认
“填报时间”是一个日期型字段,用户提出需求只能选择每个月的第二个周二,选择其他日期的话就弹出提示框提醒用户重新选择,“填报时间”不能设置为只读并且赋值为当月,因为用户选择的填报时间可能会往后推,即10月申请11月的流程。
1.2、展示效果
- 非选择月的第二个周二,弹出提示框
- 选择月的第二个周二,无提示信息
2、实现方法
代码块
<script>debugger;var tbsjField = WfForm.convertFieldNameToId("tbsj");//按照yyyy-mm-dd格式返回日期型字符串function formatDate(dateStr) { // 使用正则表达式将日期字符串拆分成年、月、日 const [year, month, day] = dateStr.split('-').map(num => parseInt(num, 10)); // 使用 padStart 方法确保月份和日期是两位数 const formattedMonth = month.toString().padStart(2, '0'); const formattedDay = day.toString().padStart(2, '0'); return `${year}-${formattedMonth}-${formattedDay}`; } //获取所选月份的第二个周二function GetSecondTuesday(thisDate){var date = new Date(thisDate);var thisMonth = date.getMonth() + 1;var firstDay = `${date.getFullYear()}-${thisMonth}-1`; //本月第一天var curDay = new Date(firstDay);var secondTuesday; //保存第二个周二的日期//获取第二个周二的日期,从1号开始循环while((curDay.getMonth()+1) == thisMonth){var dayOfWeek = curDay.getDay(); if(dayOfWeek == 2){//如果有值,说明已经过了第一个周二var dateStr = `${curDay.getFullYear()}-${curDay.getMonth()+1}-${curDay.getDate()}`; if(secondTuesday){secondTuesday = formatDate(dateStr);break;}else{secondTuesday = formatDate(dateStr);}}curDay.setDate(curDay.getDate() + 1);}return secondTuesday;}jQuery(document).ready(function(){ WfForm.bindFieldChangeEvent(tbsjField,function(obj,id,value){var date = new Date(value);var selMonth = date.getMonth() + 1;var secondTuesday = GetSecondTuesday(value);if(value != secondTuesday){Dialog.alert("【请确认本月的第二个周二】 "+selMonth+"月的第二个周二是"+secondTuesday);}});})
</script>
3、扩展知识——js日期相关函数
var myDate1 = new Date();//创建时间;//输出:Thu Oct 17 2024 10:42:21 GMT+0800 (中国标准时间) var setDate = '2024-09-06';//输出:'2024-09-06'var myDate2 = new Date(setDate);//将指定日期转为标准日期格式;//输出:Fri Sep 06 2024 08:00:00 GMT+0800 (中国标准时间)var year = myDate2.getYear();//(2位)//获取当前年份;//输出:124//它返回的是从1900年起的年数偏移量,而不是实际的年份。var fullyear = myDate2.getFullYear();//(4位)//获取完整年份;//输出:2024var month = myDate2.getMonth();//(0-11,0是1月)//获取月份;//输出:8var day1 = myDate2.getDate();//(1-31日)//获取当前日期;//输出:6var day2 = myDate2.getDay();//(0-6,0是星期天) //获取当前星期//输出:5