如何在javascript中显示上周的日子?

时间:2017-05-04 19:21:33

标签: javascript

我需要一个脚本来显示上周的日子,直到今天。 但是当它在本月初时,就像第4天一样,我的代码存在这个问题。 我正在使用getDate()。有没有可以帮助我的功能?

result

3 个答案:

答案 0 :(得分:1)

您可以使用getDay方法,该方法给出星期几(1个星期一,3个星期三)。从这个值你可以把一个递减的循环放到1个星期一或0个星期日,以显示一周的前一天。

var weekdays = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
var d = new Date();
var currDay = d.getDay();
var currDate = d.getDate();
var str = "";
for(var count=currDay; count>=0 && currDate >= 1; count--, currDate--){
    str += currDate +" "+weekdays[count] + ", ";
}
console.log(str);

今天的输出:5 Fri, 4 Thu, 3 Wed, 2 Tue, 1 Mon

答案 1 :(得分:1)

你可以使用getDate(),但不要将它放在一个变量中,然后你可以减少它的风险为0及以下。

而是使用setDate()(可能与getDate()结合使用)逐日递减日期对象,然后以您想要的格式读出日期:



var dt = new Date();
headers = ['Hoje'];
for (var i = 1; i < 7; i++) {
    dt.setDate(dt.getDate() - 1);
    headers.push(dt.toLocaleDateString('pt-PT').substr(0,5));
}
console.log(headers);
&#13;
&#13;
&#13;

答案 2 :(得分:1)

从今天起一周后,无论你在哪个月(甚至在月初的七天内),只需.setDate()到一个小于七(天)的值。 getDate()给出:

var d = new Date()
d.toDateString()
"Thu May 04 2017"

// go back a week
d.setDate(d.getDate() - 7);
1493321406767

// prove that it worked
d.toDateString()
"Thu Apr 27 2017"