❶ 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);