我正试着在未来三天的天气应用上显示天气预报。对于“明天”,我没有使自己复杂化,所以我只显示“明天”,但我也需要显示后天和后天也是->
所以我可以显示“明天:21/13,后天=.,第二天-下一天=.”
我试图使用getDay()方法获得这个值,因为它返回一个从0到6的数组,所以我试图将它与我制作的一周数组进行比较,其顺序与该方法返回给程序的顺序相同:“嘿,如果您得到getDay === 1,那么在我的数组"days1”(即字符串“days1”)上显示这个位置。但是我做错了一些事情,无法得到我想要的反馈。
function calculateDay () {
const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
let today = new Date();
let currentDay = today.getDay();
let trueDay;
let afterTom = trueDay + 1;
let dayNext = trueDay + 2;
if (currentDay === 0) {
trueDay === days[0];
}
} 我对此非常困惑,也不知道如何获得反馈,以及如何获得两种不同的反馈数据(后天和后天)。
任何帮助都会得到这位前端学徒的感谢。
谢谢,伙计们!
发布于 2019-08-19 14:06:11
您所需要做的就是,当您增加一天时,检查它是否大于6。如果是,那么您需要重新启动计数,将日期设置为0。
下面的代码将帮助您以一种非常可读的方式理解。
const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
function calculateDay() {
let today = new Date();
let currentDay = today.getDay();
console.log("Today:", days[currentDay])
let tomorrow = currentDay + 1; //INCREASE A DAY
if (tomorrow > 6) { //CHECK IF IS BIGGER THAN 6 (6 = saturday)
tomorrow = 0;
}
console.log("Tomorrow:", days[tomorrow])
let dayAfter = tomorrow + 1;
if (dayAfter > 6) {
dayAfter = 0;
}
console.log("Day After Tomorrow:", days[dayAfter])
let thirdDay = dayAfter + 1;
if (thirdDay > 6) {
thirdDay = 0;
}
console.log("Third Day:", days[thirdDay])
}
calculateDay()
发布于 2019-08-19 14:09:44
如果我正确地理解了你,你就不需要使用If语句了。只需计算正确的日索引,并使用模数(%)确保不超出日期数组:
function calculateDay () {
const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
let today = new Date();
let currentDay = today.getDay();
let trueDay = days[currentDay];
let afterTom = days[((trueDay + 1) % days.length)];
let dayNext = days[((trueDay + 2) % days.length)];
}
} 但我不知道你为什么把这一天叫做+1 afterTomorrow,不是明天吗?
https://stackoverflow.com/questions/57558330
复制相似问题