我正在制作的是一个天气预报网站,我需要的是一周中的几天(即“星期日”、“星期一”等)。为了获得明天的日期,我只是像有人在另一个问题中建议的那样输入“+ 1”,但是当到达星期六时,它会显示“未定义”。我该如何做到这样,当到达星期六时,+ 1将循环到星期日?预先感谢!
var day=new Date();
var weekday=new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
document.getElementById('tomorrow').innerHTML = weekday[day.getDay() + 1];
document.getElementById('twodays').innerHTML = weekday[day.getDay() + 2];
document.getElementById('threedays').innerHTML = weekday[day.getDay() + 3];
要向 javascript Date 对象添加一天,您可以这样做:
var date =new Date();
//use the constructor to create by milliseconds
var tomorrow = new Date(date.getTime() + 24 * 60 * 60 * 1000);
注意,获取日期。
Date.getDay 根据星期几返回 0-6 之间的数字。
所以你会这样做:
var date =new Date();
var tomorrow = new Date(date.getTime() + 24 * 60 * 60 * 1000);
var twoDays = new Date(date.getTime() + 2 * 24 * 60 * 60 * 1000);
var threeDays = new Date(date.getTime() + 3 * 24 * 60 * 60 * 1000);
document.getElementById('tomorrow').innerHTML = weekday[tomorrow.getDay()];
document.getElementById('twodays').innerHTML = weekday[twoDays.getDay()];
document.getElementById('threedays').innerHTML = weekday[threeDays.getDay()];
编辑:修复拼写错误
使用
(day.getDay() + i) % 7
。这只会返回 0-6 之间的结果。
只是增加了看似答案的清晰度。在这种情况下,i 是整数,因此接下来的两天将如下所示:
document.getElementById('twodays').innerHTML = weekday[(day.getDay() + 2) % 7];
在我的版本中,我还将数组清理为以下内容:
const weekday = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];