我試圖讓一個函數得到所有的一週中給定的當天day.I有一個函數,我認爲工作,直到我注意到,如果星期幾接近月底,例如二月,我得到奇怪的數據。任何人都知道發生了什麼以及如何解決它?JS-獲取本週的幾天
function days(current) {
var week = new Array();
// Starting Monday not Sunday
var first = ((current.getDate() - current.getDay()) + 1);
for (var i = 0; i < 7; i++) {
week.push(
new Date(current.setDate(first++))
);
}
return week;
}
var input = new Date(2017, 1, 27);
console.log('input: %s', input);
var result = days(input);
console.log(result.map(d => d.toString()));
.as-console-wrapper{min-height:100%}
任何想法爲什麼會變成這個 new Date(「2017-02-27」);成爲這個 Sun Feb 26 2017 18:00:00 GMT-0600(中部標準時間) – John
@John這是因爲你的時區(GMT-6)。插入到新Date()中的日期需要使用GMT,如果沒有設置時間,將使用0:00h。由於您的時區爲GMT-6,因此您的瀏覽器打印出來的結果將會縮短6個小時,因爲它會轉換爲您的時區。 –
那麼我如何檢測正確的時間,和/或將字符串轉換爲正確的日期對象?我通過像上面那樣的字符串得到我的日期。 – John