Вычтите дни из поля даты (мм / дд / ггг), исключая 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]
в этом. Если вы не укажете дату, по умолчанию будет отображаться текущая дата и время.
Подробнее о том, что можно разобрать, можно узнать здесь.