❶ js 判断日期yyyy-MM-dd或yyyy-M-d或yyyyMMdd
最简单的正则 如 : \d-\d-\d
但是实际情况却不是那么简单,,要考虑,有效性和闰年等问题.....
对于日期的有效范围,不同的应用场景会有所不同。MSDN中定义的DateTime对象的有效范围是:0001-01-01 00:00:00到9999-12-31 23:59:59。
UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z。
先考虑与年份无关的前三条规则,年份可统一写作
(?!0000)[0-9]
下面仅考虑月和日的正则
1. 包括平年在内的所有年份的月份都包含1-28日
(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])
2. 包括平年在内的所有年份除2月外都包含29和30日
(0[13-9]|1[0-2])-(29|30)
3. 包括平年在内的所有年份1、3、5、7、8、10、12月都包含31日
(0[13578]|1[02])-31)
合起来就是除闰年的2月29日外的其它所有日期
(?!0000)[0-9]-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)
接下来考虑闰年的实现
1 : 四年一闰
([0-9](0[48]|[2468][048]|[13579][26])
2 : 百年不闰,四百年再闰
(0[48]|[2468][048]|[13579][26])00
3 : 合起来就是所有闰年的2月29日
([0-9](0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)
四条规则都已实现,且互相间没有影响,合起来就是所有符合DateTime范围的日期的正则
^((?!0000)[0-9]-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9](0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$
考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。
^(?:(?!0000)[0-9]-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9](?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
❷ JS 如何比较两个输入框里输入的日期大小,并且第一个输入框里的时间还要和当前的时间比较
<inputtype="text"id="time1"/>
<inputtype="text"id="time2"/>
varnow=newDate().getTime();//当前时间戳
vartime_1=newDate(document.getElementById('time1').value).getTime();//1的时间戳
vartime_2=newDate(document.getElementById('time2').value).getTime();//2的时间戳
//直接进行版时间戳的比较即可权,js的时间戳是从1970年1月1日0时0分0秒到对应时间所经过的毫秒数
//上面3个变量都是number类型,可直接进行比较,加减运算也可
❸ JS 如何比较时间大小
需要准备抄的材料分袭别是:电脑、html编辑器、浏览器。
1、首先,打开html编辑器,新建html文件,例如:index.html。
❹ 在js中怎么区分大小写
VB的语法是Case InSensitive的,也来s就是说大源a小s写不j敏感,不k区g分5大x小q写,end if、 End If没区r别,只是因为8习m惯的原因一y般都用后者而已z。。 JS的语法是Case Sensitive的,大q小d写敏感,需要区g分2。 xkcぉ├蕤u_⊕gz莹pz
❺ js比较两个日期大小
思路:
先都转换成日期。然后再用毫秒数进行比较。
下面是简单内的例子:
functiontab(date1,date2){
varoDate1=newDate(date1);
varoDate2=newDate(date2);
if(oDate1.getTime()>oDate2.getTime()){
console.log('第一个大容');
}else{
console.log('第二个大');
}
}
tab('2015-10-10','2015-10-11');
❻ js 判断日期 大小
-
<script language="javascript">
var DateTimereg=/^(\d{1,4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/
function checkdate(defaultDate){
if((defaultDate!="")){
if (!defaultDate.match(DateTimereg)){
alert("格式不正确!\t\n\n格式为:yyyy-mm-dd hh:mm:ss");
return false;
}
}
return true;
}
function CheckForm(myfor){
var d1=myfor.istime.value;
var d2=myfor.ietime.value;
if (!d1.match(DateTimereg)){
alert("[开始时间]格式不正确!\t\n\n格式为:yyyy-mm-dd hh:mm:ss");
myfor.istime.focus();
return false;
}
if(Date.parse(d1.replace("-","/")) > Date.parse(d2.replace("-","/"))){
alert("开始时间大于结束时间,请检查!");
return false;
}
return true
}
</script>
❼ js中两个字符串时间如何判断大小
最精确的比较方式应该是,知道字符串对应的时间的格式,然后将字符串转化成date型进行比较。
❽ js 判断日期格式
functionisDate(dateString){
if(dateString.trim()=="")returntrue;
varr=dateString.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null){
alert("请输入格式正确的日期\n\r日期格式碰庆:yyyy-mm-dd\n\r例 如:2008-08-08\n\r");
returnfalse;
}
vard=newDate(r[1],r[3]-1,r[4]);
varnum = (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
if(num==0){
alert("请输入格式正确的蠢睁日笑档握期\n\r日期格式:yyyy-mm-dd\n\r例 如:2008-08-08\n\r");
}
return(num!=0);
}
❾ 如何用js判断2个日期的大小,格式为:日/月/年,其中月和日前面不加0
简单一点,
1.将字符串转化为时间
2.时间做差(差为相差的毫秒数)
3.差大于零,就是前者的时间 > 后者的时间. 反之,就是 <
4.例子
var str0 = '2012/1/3';
var str1 = '2012/1/2';
var date0 = new Date(str0);
var date1 = new Date(str1);
alert(date0 - date1);