首页 > 解决方案 > 计算日期的问题

问题描述

有人可以帮我确定为什么这段代码不起作用吗?

<script type="text/javascript">

const date = new Date();
const day = date.getUTCDate();
const month = date.getMonth(); //January is 0! 
const md = month + "." + day

if (md < 3.03) {
        var theDate = new Date();
    var award_year1 = date.getFullYear();
        var award_year2 = date.getFullYear() + 1;
}

else if (md > 3.03) {
        var theDate = new Date();
    var award_year1 = date.getFullYear() + 1;
        var award_year2 = date.getFullYear() + 2;
}

console.log(award_year1);
console.log(award_year2);
</script>

今天是 6 月 7 日,所以它应该返回 Award_year1 = 2019 和 Award_year2 = 2020。

标签: javascript

解决方案


只是一个建议,使您的代码更具声明性/更易于阅读。您可以按照您期望的方式比较 2 个日期对象。

const date = new Date();
let offset = 0;
const threshold = new Date();
threshold.setMonth(3);
threshold.setDate(3);
if (Date.now() > threshold) { //might be a bit easier to reason about
  offset = 1;
}
var theDate = new Date();
var award_year1 = date.getFullYear() + offset;
var award_year2 = date.getFullYear() + 1 + offset;

console.log(award_year1);
console.log(award_year2);


推荐阅读