javascript - 下面这段JS是什么意思 起到个什么作用?
ringa_lee
ringa_lee 2017-04-10 16:45:58
[JavaScript讨论组]
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();
这两段完全看不懂。
这段代表到底要表达什么意思?

ringa_lee
ringa_lee

ringa_lee

全部回复(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

怪我咯

仅讨论那两段代码的话,它无非就是拿年的值乘上了100,然后再加上月份的值,比如说这个月按这个算法算出来就是201601这样的结果

需要精确比较两个时间可以考虑直接getTime()比较两个时间戳,精确到毫秒

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号