gpt4 book ai didi

javascript - 如果在 javascript 中是冬天,则更改粒子

转载 作者:行者123 更新时间:2023-11-29 20:48:26 24 4
gpt4 key购买 nike

我有两个粒子 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())) {  /*....*/ }

您尝试中的一个问题是 setMonthsetDate方法以毫秒数(不仅仅是月或日部分)的形式返回修改日期,并改变调用该方法的日期。

功能说明:

三元表达式使用这个逻辑:

  • 如果月份是十二月 (11),则当月份中的某一天至少​​为 21 时返回真,否则返回假:这就是 dt.getDate() >= 21。评估为(真或假)。
  • 否则,如果月份是三月 (2),则当月中的第几天小于 21 时返回 true,否则返回 false:与上述原理相同,但相反
  • 否则,当月份在三月 (< 2) 之前返回 true,否则返回 false:这就是 m < 2评估为。

关于javascript - 如果在 javascript 中是冬天,则更改粒子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53243936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com