2017-05-04 44 views
-3

我需要一個腳本來顯示上週的日子,直到今天。 但是,當它在本月初,就像第4天,我的代碼有這個問題。 我正在使用getDate()。有沒有可以幫助我的功能?如何在javascript中顯示上週的日子?

result

+1

編輯您的問題以包含您的代碼。根據發佈準則:*尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。 – Santi

回答

1

您可以使用getDay方法,這給周(1日,3日)的日子。從這個值你可以設置一個遞減循環,直到1-monday或0-sunday顯示前一天的一週。

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

您可以使用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);

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"