如果在JavaScript中是冬天,请更改粒子

装甲

我对粒子js有两种配置(json)。其中之一是冬季,因此应在12月21日至3月21日启用。我尝试了很多事情,但仍然无法正常工作(不是因为仍然是11月:))我尝试的最后一件事是

var today = new Date();
var tDate = today.getDate();
var tMonth = today.getMonth();

var startingDate = new Date();
var sDate = startingDate.setDate(1);
var sMonth = startingDate.setMonth(10);

var endingDate = new Date();
var eDate = endingDate.setDate(21);
var eMonth = endingDate.setMonth(2);

if (tMonth >= sMonth && tMonth <= eMonth) {
    if (tDate >= sDate && tDate <= eDate) {
        particlesJS.load('particles', '../../Content/Scripts/particles/particles-config-winter.json');
    }
}
else {
    particlesJS.load('particles', '../../Content/Scripts/particles/particles-config.json');
}

这没有意义,因为开始日期和结束日期均为21。我尝试将其作为字符串进行比较,但没有解决。我不知道如何比较javascript中的两个日期。有什么帮助吗?

亭子

您可以使用以下功能:

function isWinter(dt) {
    const m = dt.getMonth();
    return m == 11 ? dt.getDate() >= 21 : m == 2 ? dt.getDate() < 21 : m < 2;
}

像这样将其命名为今天的日期:

if (isWinter(new Date())) {  /*....*/ }

尝试中的问题之一是setMonthandsetDate方法将修改后的日期返回为毫秒数(不只是一个月或一天的一部分),并改变了调用该方法的日期。

功能说明:

三元表达式使用以下逻辑:

  • 如果该月是12月(11),则当该月中的某天至少为21时返回true,否则返回false:这是dt.getDate() >= 21计算结果(正确或错误)。
  • 否则,如果月份为三月(2),则当月份中的月份小于21时返回true,否则返回false:与上述原理相同,但取反
  • 否则,当月份在三月(<2)之前时返回true,否则返回false:这就是结果m < 2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章