如何从日期字段中减去天数?
示例:
日期值 03/10/2014 (mm / dd / yy),
我希望能够从中减去6个杂草 03/03/2014
有人可以帮我解决这个问题吗。
小提琴:添加6个工作日并禁用所有以前的日期值... 从这个小提琴中选择任何日期,必须从中减去6个工作日。
即$("#txtFromDate").val() - 6 weekdays
http://jsfiddle.net/7DHVr/8/
提前致谢
答案 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。