从日期字段中减去天数(mm / dd / yyyy),不包括周末jquery

时间:2014-03-03 06:11:16

标签: jquery date jquery-ui-datepicker weekend

如何从日期字段中减去天数?

示例:

日期值 03/10/2014 (mm / dd / yy),

我希望能够从中减去6个杂草 03/03/2014

有人可以帮我解决这个问题吗。

小提琴:添加6个工作日并禁用所有以前的日期值... 从这个小提琴中选择任何日期,必须从中减去6个工作日。

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

提前致谢

4 个答案:

答案 0 :(得分:2)

这可以通过在javascript中从Date类型变量中减去来实现

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

这将返回表示该日期的一串数字,然后使用

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

如果要将其重新格式化为日期 详细答案在Subtract days from a date in JavaScript

答案 1 :(得分:2)

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

它将从你想要动态减去一天的任何周末减去

答案 2 :(得分:1)

只是添加到上一个答案。您可能希望使用DateJs来更轻松地使用日期API。

所以就是这样:

 Date.today().addDays(-6)   

要删除6个工作日,您只需要

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

然后如果它是工作日那么子结构1另外,如果它的星期六然后2,如果星期日 - 3

答案 3 :(得分:1)

虽然可以使用标准的javascript Date对象完成此操作,但我强烈建议您使用moment.js之类的日期时间库,而不是尝试使用自己的日期时间库。特别是当您考虑区域设置,时区,闰年,不同长度的月份,星期几的哪一天等等。

Moment.js有工作日支持,可以找到here的文档。

要从日期中减去6个工作日,您可以执行以下操作:

moment(date).weekday(-6);

请注意,您可以传递现有的javascript Date以及各种ISO日期格式,甚至可以传递其中包含[year, month, day, hour, minute, second]的数组。如果您没有提供日期,则会将时刻默认为当前日期和时间。

可以找到有关可以解析的内容的更多信息here