使用 getDay Javascript 获取明天的日期

问题描述 投票:0回答:3

我正在制作的是一个天气预报网站,我需要的是一周中的几天(即“星期日”、“星期一”等)。为了获得明天的日期,我只是像有人在另一个问题中建议的那样输入“+ 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 variables date new-operator
3个回答
27
投票

要向 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()];

编辑:修复拼写错误


9
投票

使用

(day.getDay() + i) % 7
。这只会返回 0-6 之间的结果。


0
投票

只是增加了看似答案的清晰度。在这种情况下,i 是整数,因此接下来的两天将如下所示:

  document.getElementById('twodays').innerHTML = weekday[(day.getDay() + 2) % 7];

在我的版本中,我还将数组清理为以下内容:

const weekday = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
© www.soinside.com 2019 - 2024. All rights reserved.