Вычтите дни из поля даты (мм / дд / ггг), исключая jquery по выходным

Как я могу вычесть дни из поля даты?

Пример:

Значение даты 03/10/2014 (мм / дд / гг),

Я хочу быть в состоянии вычесть 6 weedays из этого, чтобы получить 03/03/2014

Может кто-нибудь, пожалуйста, помогите мне получить это.

Скрипка: чтобы добавить 6 дней недели и отключить все предыдущие значения даты... Из этой скрипки, какая бы дата ни была выбрана, из нее нужно вычесть 6 дней недели.

т.е. $("#txtFromDate").val() - 6 weekdays http://jsfiddle.net/7DHVr/8/

заранее спасибо

4 ответа

Решение
var count = 10;
//Add the 2 days of weekend in numer of days .
var d = new Date();

count = count + (parseInt(count/5))*2;
d.setDate(d.getDate() -count);
//suppose its ending on weekend day then increment them manually.
if(d.getDay() == 6 ) d.setDate(d.getDate() -1); 
if(d.getDay() == 0){ d.setDate(d.getDate() - 2);}; 
alert(d);

он вычитает весь день выходных дней из того, что вы хотите вычесть динамически

Просто чтобы добавить к предыдущему ответу. Вы можете использовать DateJs для более удобного использования API даты.

Так было бы так:

 Date.today().addDays(-6)   

Чтобы удалить 6 будних дней, вам просто нужно сделать

new Date().last().week()  - this will substruct 5 weekdays

и затем, если это будний день, то вычтите 1 дополнительный, если его суббота, то 2, если воскресенье - 3

Это можно сделать путем вычитания из переменной типа Date в javascript следующим образом

var d = new Date("08/18/2009");
d.setDate(d.getDate()-5);

Это вернет строку чисел, представляющих эту дату, затем используйте

new Date(new Date().setDate(new Date().getDate()-5))

Если вы хотите переформатировать его как дату, подробный ответ здесь. Вычтите дни из даты в JavaScript.

Хотя вы могли бы сделать это с помощью стандартного JavaScript Date объект, я бы настоятельно рекомендовал использовать библиотеку datetime, такую ​​как moment.js, вместо того, чтобы пытаться свернуть свою собственную. Особенно если учесть локаль, часовые пояса, високосные годы, месяцы разной длины, какой день является началом недели и т. Д.

Moment.js имеет поддержку в будние дни, а документацию по ней можно найти здесь.

Чтобы вычесть 6 дней из даты, вы можете сделать следующее:

moment(date).weekday(-6);

Обратите внимание, что вы можете передать момент существующего JavaScript Date а также широкий спектр форматов даты ISO или даже просто массив с [year, month, day, hour, minute, second] в этом. Если вы не укажете дату, по умолчанию будет отображаться текущая дата и время.

Подробнее о том, что можно разобрать, можно узнать здесь.

Другие вопросы по тегам