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();
这两段完全看不懂。
这段代表到底要表达什么意思?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
var currentDateCount = currentDate.getFullYear() * 100 + currentDate.getMonth();
var selectDateCount = tmpDate.getFullYear() * 100 + tmpDate.getMonth();
第一句,拿现在举例currentDate.getFullYear() 100就得到2016100=201600
第二句类似,tmpDate.getFullYear() * 100你选择的年份的100倍,假设2015年,则值为201500
整段代码的意思就是检查一下你选择的日期是不是比当前日期大,是则返回true,否就false
判断当前日期是否小于指定日期的
getMonth方法返回的可能
>10
,也可能<10
如果直接
currentDate.getFullYear()+currentDate.getMonth()
后可能出现20169或201610
也就是currentDateCount和selectDateCount计算得出的2个数字,长度对不齐,也就失去了比较的意义
因为
20169<201510
对齐2者只需要在年份数字后添加00,那就加月份的时候都可长度对齐了
所以年份
*100
啦仅讨论那两段代码的话,它无非就是拿年的值乘上了100,然后再加上月份的值,比如说这个月按这个算法算出来就是201601这样的结果
需要精确比较两个时间可以考虑直接
getTime()
比较两个时间戳,精确到毫秒