2014-12-10 7 views
0

Мне нужна ваша помощь.Получение понедельника и пятницы следующей недели

Текущий код, указанный ниже, позволяет рассчитать дату, неделю (7 дней) с указанной даты.

Я бы хотел, чтобы он был изменен таким образом, чтобы на сегодняшнюю дату и рассчитать, какая дата (понедельник и пятница) будет на следующей неделе.

Т.е. текущая дата: 12/10/2014 (мм/дд/гггг)

Понедельник следующей недели является: 12/15/2014

Пятница следующей недели будет: 12/19/2014

function nextweek() { 

    var currentDate = new Date(); 

    var w = new Date(currentDate.getTime() + 7 * 24 * 60 * 60 * 1000); 

    var dd = w.getDate() 

    var mm = w.getMonth() + 1 

    var yyyy = w.getFullYear() 

    return mm + '/' + dd + '/' + yyyy 

} 
+0

какое усилие вы предприняли, чтобы выяснить свою проблему, а не просто дать нам код для 'nextWeek'? –

+2

Посмотрите на метод 'getDay()' объекта 'Date'. –

+0

Вы можете заглянуть в библиотеку 'DateJS'. Это так же просто, как 'Parse.date ('next monday');' –

ответ

1

Вот некоторые фрагменты коды, адаптированная для подобного вопроса я видел некоторое время назад (не помнит точный источник, речь шла о получении понедельника текущей недели)

Date.prototype.getNextWeekMonday = function() { 
 
    var d = new Date(this.getTime()); 
 
    var diff = d.getDate() - d.getDay() + 1; 
 
    if (d.getDay() == 0) 
 
     diff -= 7; 
 
    diff += 7; // ugly hack to get next monday instead of current one 
 
    return new Date(d.setDate(diff)); 
 
}; 
 

 
Date.prototype.getNextWeekFriday = function() { 
 
    var d = this.getNextWeekMonday(); 
 
    return new Date(d.setDate(d.getDate() + 4)); 
 
}; 
 

 
// You can then use it like this : 
 

 
var date = new Date(); 
 
alert(date.getNextWeekMonday()); 
 
alert(date.getNextWeekFriday());

Он должен быть протестирован в суровые дни (воскресенье и понедельник), чтобы гарантировать, что он вернется в понедельник и пятницу с правильной недели.

0

Вы можете добавить setDay функцию:

Date.prototype.setDay = function(dayOfWeek) { 
    this.setDate(this.getDate() - this.getDay() + dayOfWeek); 
}; 

var d = new Date(); 
d.setDay(8); // next monday -- 7 + 1... 7 days for next week, 1 day for monday 
console.log(d); 
d.setDay(5); // next friday 
console.log(d); 

Это держит с изменчивостью на дату объекта.

0

Это просто добавляет элемент в HTML, но мы также можем иметь текстовое поле, в котором пользователь может указать желаемую дату, обработать этот вход через event handling и отобразить NextMonday.

<html> 
<head><title>DATE EXAMPLE</title></head> 
<body> 
<div id="date"> 

</div> 
<script type="text/javascript"> 
    var date = new Date("12/10/2014"); 
    var divElement = document.getElementById("date"); 
    divElement.appendChild(document.createTextNode("")); 
    var nextMonday = new Date(date.getMonth() + "/" + parseInt(date.getDate() + 7 - date.getDay() + 1) + "/"+ date.getFullYear()); 
    var newDate = new Date 
    divElement.firstChild.nodeValue = nextMonday; 
</script> 
</body> 
</html> 

Получение NextFriday может быть выполнено аналогичным образом.

Смежные вопросы