2012-01-10 5 views
5
года

В Java-скрипте я хочу, чтобы получить первую неделю даты и последней неделю даты по номеру недели и год ....как получить первый день и последний день недели числа и

Для пример, если я дать ввод как

2(week),2012

он должен возвращать значения

2012-01-08 and 2012-01-14

+0

Как насчет, если я даю 2 за 2013 год? Что он должен вернуть? –

+0

он должен вернуть вторую неделю первой даты и последней даты .... – balaphp

+0

@balaphp на самом деле это вернет первую и последнюю дату 2-й недели 2013 года. ? – Chandresh

ответ

7

Попробуйте это:

var year = 2012; 
var week = 2; 
var d = new Date("Jan 01, "+year+" 01:00:00"); 
var w = d.getTime() + 604800000 * (week-1); 
var n1 = new Date(w); 
var n2 = new Date(w + 518400000) 

n1 содержит первый день недели
п2 содержит последний день недели

Что касается констант:
604800000 одна неделя в миллисекундах
518400000 - шесть дней

+3

Неправильно, n1 не обязательно в понедельник, а n2 не обязательно в воскресенье , –

1

вы можете проверить и т ry с ниже ссылкой.

How to get first and last day of the week in JavaScript

Это будет может полезно для вас.

Спасибо.

+0

Я уже проверил его .. его возвращаемые значения по дате, но я хочу, чтобы те же результаты по номеру недели и году ... – balaphp

3

Небольшое изменение на ответ @bardiir, , если в первый день года не воскресенье (или понедельник), этот результат неверен. Вы должны минус номер первого дня.

Измененный код

firstDay = new Date(2015, 0, 1).getDay(); 
console.log(firstDay); 
var year = 2015; 
var week = 67; 
var d = new Date("Jan 01, "+year+" 01:00:00"); 
var w = d.getTime() -(3600000*24*(firstDay-1))+ 604800000 * (week-1) 
var n1 = new Date(w); 
var n2 = new Date(w + 518400000) 

console.log(n1); 
console.log(n2); 

если вы хотите первое воскресенье, изменить (FirstDay-1) в

-1
dt = new Date(); 
    var firstDateOfWeek=(dt.setDate(dt.getDate()-dt.getDay())); 
    var lastDateOfWeek=(dt.setDate(dt.getDate()+6-dt.getDay())); 
Смежные вопросы