2016-07-26 13 views
0

Ich habe eine ISO-Datumszeit-Zeichenfolge für das aktuelle Datum Uhrzeit: 2016-07-26T11:56:59.792Z. Wie bekomme ich das [Startdatum, Enddatum> der aktuellen Woche?Wie bekomme ich Anfang und Ende einer Woche mit JS einen beliebigen Termin in der Mitte der Woche?

Start: 2016-07-25T00:00:00.000Z Ende: 2016-07-32T00:00:00.000Z

+0

würde ich http://www.datejs.com/ – Bolza

+0

was Sie versucht haben? Die Frage, so wie sie derzeit formuliert wird, klingt so, als wollten Sie, dass die Menschen Ihr Problem für Sie lösen. zeig uns, was du versucht hast, und wir werden dich besser führen können! – codeling

Antwort

0

können Sie Funktion in Antworten gegeben verwenden here und here.

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; 
 
}

und dementsprechend können Sie 7 Tage bis zu diesem Zeitpunkt fügen Sie das letzte Datum zu erhalten. (gemäß dem Format, das Sie benötigen.)

0

Versuchen Sie diese Methode.

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; 
 
}