js 对输入的时间限制是年-月-日或者年-月-日 时:分:秒这两种形式都满足
---------------------------currentDate:是从前台获取过来的,格式是:年-月-日
我的需求是:年-月-日或者年-月-日 时:分:秒这两种形式都满足
var paymentDate = getAccDtValueTrim(detailSselectedRows[i], "PAYMENT_DATE");
if(paymentDate.length == 0){
getAccountBookRowSet().setFocusByName(selectedRows[i], "PAYMENT_DATE");
alert(mustInput + "预计到账日期");
return false;
}else{
var reg = /^(\d{4})-(\d{2})-(\d{2})$/;
var reg2 = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;
alert("paymentDate = " + paymentDate)
if (!reg.test(paymentDate)&®Exp.$2<=12&®Exp.$3<=31){
alert("时间格式输入错误,提示:'1970-01-01',请输入正确时间!");
return false;
}else if(!reg2.test(paymentDate)&®Exp.$2<=12&®Exp.$3<=31){
alert("时间格式输入错误,提示:'1970-01-01 00:00:00',请输入正确时间!");
return false;
} else{
var oDate = new Date();
var months = oDate.getMonth()+1
if(months<10){ months = "0" + months; }
var days = oDate.getDate()
if(days<10){ days = "0" + days; }
var hours = oDate.getHours()
if(hours<10){ hours = "0" + hours; }
var minutes = oDate.getMinutes()
if(minutes<10){ minutes = "0" + minutes; }
var seconds = oDate.getSeconds()
if(seconds<10){ seconds = "0" + seconds; }
var cTime = oDate.getFullYear()+"-"+months+"-"+days+ " "+hours+":"+minutes+":"+seconds
if(paymentDate < currentDate){
alert("预计到账日期必须大于等于系统当前日期");
return false;
}else if(paymentDate < cTime){
alert("预计到账日期必须大于等于系统当前日期------");
return false;
}
}
}
另外,下面的两种方式也是不OK的,代码如下:
第一种方式不ok:
var reg = /^(\d{4})-(\d{2})-(\d{2})$/;
var reg2 = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;
if ((!reg.test(paymentDate)&®Exp.$2<=12&®Exp.$3<=31) || (!reg2.test(paymentDate)&®Exp.$2<=12&®Exp.$3<=31)){
alert("时间格式输入错误,提示:'1970-01-01'或'1970-01-01 00:00:00',请输入正确时间!");
return false;
}else{
var oDate = new Date();
var months = oDate.getMonth()+1
if(months<10){ months = "0" + months; }
var days = oDate.getDate()
if(days<10){ days = "0" + days; }
var hours = oDate.getHours()
if(hours<10){ hours = "0" + hours; }
var minutes = oDate.getMinutes()
if(minutes<10){ minutes = "0" + minutes; }
var seconds = oDate.getSeconds()
if(seconds<10){ seconds = "0" + seconds; }
var cTime = oDate.getFullYear()+"-"+months+"-"+days+ " "+hours+":"+minutes+":"+seconds
if((paymentDate < currentDate) || (paymentDate < cTime)){
alert("预计到账日期必须大于等于系统当前日期");
return false;
}
}
第二种方式不OK:
var reg = /^(\d{4})-(\d{2})-(\d{2})$/;
if (!reg.test(paymentDate)&®Exp.$2<=12&®Exp.$3<=31){
alert("时间格式输入错误,提示:'1970-01-01',请输入正确时间!");
return false;
} else{
if(paymentDate < currentDate){
alert("预计到账日期必须大于等于系统当前日期");
return false;
}
}
var reg2 = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;
if(!reg2.test(paymentDate)&®Exp.$2<=12&®Exp.$3<=31){
alert("时间格式输入错误,提示:'1970-01-01 00:00:00',请输入正确时间!");
return false;
}else{
var oDate = new Date();
var months = oDate.getMonth()+1
if(months<10){ months = "0" + months; }
var days = oDate.getDate()
if(days<10){ days = "0" + days; }
var hours = oDate.getHours()
if(hours<10){ hours = "0" + hours; }
var minutes = oDate.getMinutes()
if(minutes<10){ minutes = "0" + minutes; }
var seconds = oDate.getSeconds()
if(seconds<10){ seconds = "0" + seconds; }
var cTime = oDate.getFullYear()+"-"+months+"-"+days+ " "+hours+":"+minutes+":"+seconds
if(paymentDate < cTime){
alert("预计到账日期必须大于等于系统当前日期------");
return false;
}
}
如果要是你有更好的建议,也可以发过来告诉我...
相关推荐
JavaScript获取当前时间向前推三个月的方法示例
在实际应用中,你可以调用这个`get3MonthBefor`函数来获取当前时间前三个月的具体日期和时间,并将其用于各种场景,如数据分析、日志记录或者设置时间限制等。
【2024年华为OD机试】(C卷,100分)- 检查是否存在满足条件的数字组合 (Java & JS & Python&C/C++)
华为OD(Outsourcing Developer,外包开发工程师)是华为针对软件开发工程师岗位的一种招聘形式,主要包括笔试、技术面试以及综合面试等环节。尤其在笔试部分,算法题的机试至关重要。
Mindustry MultiCrafter模组实战:打破原版合成限制,打造多输入多输出工业机器
在自动化工厂类游戏中,合成器的输入输出限制往往成为产线设计的瓶颈。Mindustry的MultiCrafter mod利用JavaScript脚本扩展了原版GenericCrafter的能力,通过数据驱动的方式支持任意数量的物品与液体输入输出。其核心原理是将配方从代码中剥离,用配置文件或JS动态管理,从而解决副产品堵塞、多产物并行等工程问题。无论是构建复杂的精炼系统,还是实现昼夜配方切换,MultiCrafter都能提供灵活的方案。本文结合实战经验,讲解从mod配置到脚本调试的完整流程,帮助Mod作者突破原
详解js正则表达式验证时间格式xxxx-xx-xx形式
本文将详细介绍如何使用JavaScript中的正则表达式来验证时间格式遵循“xxxx-xx-xx”的形式,即年-月-日的格式。
js时间插件WdatePicker
**主要功能** - **日期选择**:支持年、月、日、时、分、秒的精确选择,也可以设置只显示日期或者日期+时间。 - **日期范围限制**:可以设定最小日期和最大日期,限制用户可选的日期范围。


