2016-07-26 112 views
0

我有一個代表當前日期時間的ISO日期時間字符串:2016-07-26T11:56:59.792Z。我如何獲得本週的[開始日期,結束日期]?如何在JS中使用任意日期時間獲得一週的開始和結束?

開始:2016-07-25T00:00:00.000Z末 :2016-07-32T00:00:00.000Z

+0

我會用http://www.datejs.com/ – Bolza

+0

你嘗試過什麼?正如目前所述,這個問題聽起來像是你想讓人們爲你解決問題;告訴我們你已經嘗試了什麼,我們將能夠更好地引導你! – codeling

回答

0

您可以使用答案herehere給定函數。

var year = 2016; 
 
var week = 31; 
 
document.write("first day: " + getDateOfISOWeek(week, year) + "<br>"); 
 

 

 
function getWeekNumber(d) { 
 
    // Copy date so don't modify original 
 
    d = new Date(+d); 
 
    d.setHours(0,0,0); 
 
    // Set to nearest Thursday: current date + 4 - current day number 
 
    // Make Sunday's day number 7 
 
    d.setDate(d.getDate() + 4 - (d.getDay()||7)); 
 
    // Get first day of year 
 
    var yearStart = new Date(d.getFullYear(),0,1); 
 
    // Calculate full weeks to nearest Thursday 
 
    var weekNo = Math.ceil((((d - yearStart)/86400000) + 1)/7); 
 
    // Return array of year and week number 
 
    return [d.getFullYear(), weekNo]; 
 
} 
 

 
function getDateOfISOWeek(w, y) { 
 
    var simple = new Date(y, 0, 1 + (w - 1) * 7); 
 
    var dow = simple.getDay(); 
 
    var ISOweekStart = simple; 
 
    if (dow <= 4) 
 
     ISOweekStart.setDate(simple.getDate() - simple.getDay() + 1); 
 
    else 
 
     ISOweekStart.setDate(simple.getDate() + 8 - simple.getDay()); 
 
    return ISOweekStart; 
 
}

,因此,您可以添加7天,這一天得到的最後日期。 (按照你需要的格式)。

0

試試這個方法。

var utcToday = '2016-07-26T11:56:59.792Z'; 
 

 
var start = startDate('2016-07-26T11:56:59.792Z'); 
 
console.log(start); 
 
var end = endDate('2016-07-26T11:56:59.792Z'); 
 
console.log(end); 
 

 
function startDate(dat){ 
 
var date = new Date(dat); 
 
var index = date.getUTCDay(); 
 
date.setUTCDate(date.getUTCDate()-(index-1)); 
 
date.setUTCHours('12'); 
 
date.setUTCMinutes('00'); 
 
date.setUTCSeconds('00'); 
 
date.setMilliseconds('000'); 
 
return date; 
 
} 
 
function endDate(dat){ 
 
var date = new Date(dat); 
 
var index = date.getUTCDay(); 
 
date.setUTCDate(date.getUTCDate()+(7-(index-1))); 
 
date.setUTCHours('12'); 
 
date.setUTCMinutes('00'); 
 
date.setUTCSeconds('00'); 
 
date.setMilliseconds('000'); 
 
return date; 
 
}

相關問題