function checkDate(dateStr){
var currentDate = new Date();
var selectDate = Date.parse(dateStr);
var tmpDate = new Date();
tmpDate.setTime(selectDate);
var currentDateCount = currentDate.getFullYear() * 100 + currentDate.getMonth();
var selectDateCount = tmpDate.getFullYear() * 100 + tmpDate.getMonth();
return currentDateCount <= selectDateCount;
}
var currentDateCount = currentDate.getFullYear() * 100 + currentDate.getMonth();
var selectDateCount = tmpDate.getFullYear() * 100 + tmpDate.getMonth();
這兩段完全看不懂。
這段代表到底要表達(dá)什么意思?
ringa_lee
var currentDateCount = currentDate.getFullYear() * 100 + currentDate.getMonth();
var selectDateCount = tmpDate.getFullYear() * 100 + tmpDate.getMonth();
第一句,拿現(xiàn)在舉例currentDate.getFullYear() 100就得到2016100=201600
currentDate.getMonth()得到1
currentDateCount就是201601
第二句類似,tmpDate.getFullYear() * 100你選擇的年份的100倍,假設(shè)2015年,則值為201500
tmpDate.getMonth()你選擇的月份,假設(shè)5月,則值為5,
selectDateCount的值就是201505了
整段代碼的意思就是檢查一下你選擇的日期是不是比當(dāng)前日期大,是則返回true,否就false
var currentDateCount = currentDate.getFullYear() * 100 + currentDate.getMonth();
var selectDateCount = tmpDate.getFullYear() * 100 + tmpDate.getMonth();
getMonth方法返回的可能>10
,也可能<10
如果直接currentDate.getFullYear()+currentDate.getMonth()
后可能出現(xiàn)20169或201610
也就是currentDateCount和selectDateCount計算得出的2個數(shù)字,長度對不齊,也就失去了比較的意義
因為 20169<201510
對齊2者只需要在年份數(shù)字后添加00,那就加月份的時候都可長度對齊了
所以年份*100
啦
僅討論那兩段代碼的話,它無非就是拿年的值乘上了100,然后再加上月份的值,比如說這個月按這個算法算出來就是201601這樣的結(jié)果
需要精確比較兩個時間可以考慮直接getTime()
比較兩個時間戳,精確到毫秒