老师,我这段代码是出现了什么逻辑问题吗?
来源:6-10 知识梳理
慕仰7236035
2020-11-19 15:23:54
<script>
function setTDate(year,month,today) {
//获取今天日期
var currentDate = new Date();
//获取今天年份
var year = currentDate.getFullYear();
//获取今天的月份(0-11),加上1才是我们平时所说的月份
var month = currentDate.getMonth() + 1;
//获取今天是几号
var today = currentDate.getDate();
//获取本月总共有多少天
var allDays = new Date(year,month,0).getDate();
//拼接当前月份的第一天
var firstdate = year + '-' + month + '-01';
//1000*60*60*24是一天的毫秒数
var oldTime = new Date(firstdate + "00:00:00").getTime() + 1000 * 60 * 60 * 24 * 5;
console.log(oldTime);
var oldTime1 = new Date(firstdate + "00:00:00").getTime() + 1000 * 60 * 60 * 24 *(allDays-5);
var oldTime2 = new Date(firstdate + "00:00:00").getTime() + 1000 * 60 * 60 * 24 *(allDays);
if(currentDate.getTime() <= oldTime){
alert("是当前5天哦,小傻逼!")
}else{
alert("不是当前5天哦!小傻逼!")
}
if (currentDate.getTime() >= oldTime1 && currentDate.getTime() <= oldTime2) {
alert("是最后5天呢!");
} else {
alert("不是最后5天哦!");
}
}
setTDate(2020,11,05);
</script>
在这里输入代码,可通过选择【代码语言】突出显示
1回答
同学你好,代码中有如下问题:
1. 调用setTDate方法时,参数是数字形式,但是正常数字不能以“0”开头,因此建议将参数改成字符串形式:
2. setTDate方法的形参是year、month、today,而方法内还定义了同名的变量year、month、today,二者会冲突,建议将形参改名,如下:
3. 传入的参数并没有使用,所以方法会以当前时间来计算,修改如下:
4. 拼接时间时,秒和时间之间要有空格,如下:
5. 时间的临界点可优化一下:
另外,提问时,代码中不要含有敏感词汇呦(骂人相关词语)~,否则老师这边很久都看不到同学的问题,会影响同学的学习体验。
祝学习愉快!
相似问题
回答 3
回答 6