下面这段JS是什么意思 起到个什么作用?

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();
这两段完全看不懂。
这段代表到底要表达什么意思?

阅读 3.3k
4 个回答

var currentDateCount = currentDate.getFullYear() * 100 + currentDate.getMonth();
var selectDateCount = tmpDate.getFullYear() * 100 + tmpDate.getMonth();

第一句,拿现在举例currentDate.getFullYear() 100就得到2016100=201600

            currentDate.getMonth()得到1
            currentDateCount就是201601

第二句类似,tmpDate.getFullYear() * 100你选择的年份的100倍,假设2015年,则值为201500

         tmpDate.getMonth()你选择的月份,假设5月,则值为5,
         selectDateCount的值就是201505了
         

整段代码的意思就是检查一下你选择的日期是不是比当前日期大,是则返回true,否就false

判断当前日期是否小于指定日期的

var currentDateCount = currentDate.getFullYear() * 100 + currentDate.getMonth();
var selectDateCount = tmpDate.getFullYear() * 100 + tmpDate.getMonth();

getMonth方法返回的可能>10,也可能<10
如果直接
currentDate.getFullYear()+currentDate.getMonth()
后可能出现20169或201610

也就是currentDateCount和selectDateCount计算得出的2个数字,长度对不齐,也就失去了比较的意义
因为 20169<201510

对齐2者只需要在年份数字后添加00,那就加月份的时候都可长度对齐了
所以年份*100

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题