【问题标题】:Subtract days from a date field(mm/dd/yyy) excluding weekends jquery从日期字段中减去天数(mm/dd/yyyy),不包括周末 jquery
【发布时间】:2014-03-03 06:11:15
【问题描述】:

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

例子:

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

我希望能够从中减去 6 个工作日得到 03/03/2014

谁能帮我搞定这个。

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

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

提前致谢

【问题讨论】:

  • 请提供一些代码来获得灵感
  • weedays = 工作日?

标签: jquery date jquery-ui-datepicker weekend


【解决方案1】:

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

它会从你想要动态减去一天的任何内容中减去整个周末的一天

【讨论】:

  • 这段代码有什么错误,为什么要从接受的答案中删除
  • 问题是,'noofday' 是可变的...当'noofday' 是 6 时,我希望 newDate 是 03/03/2014
  • 明白了,如果在 6 天之间有星期天,它将无法工作
  • 是的,它给出了相同的日期,你有解决办法吗?谢谢
【解决方案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

【讨论】:

  • 谢谢,但我希望它只减去工作日
【解决方案3】:

只是为了补充上一个答案。您可能希望使用DateJs 来更轻松地使用日期 API。

原来是这样的:

 Date.today().addDays(-6)   

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

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

然后如果是工作日,则额外添加 1,如果是星期六,则为 2,如果是星期日 - 3

【讨论】:

    【解决方案4】:

    虽然您可以使用标准的 javascript Date 对象来完成此操作,但我强烈建议您使用日期时间库,例如 moment.js,而不是尝试自己动手。尤其是当您考虑到语言环境、时区、闰年、不同长度的月份、星期几开始等时。

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

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

    moment(date).weekday(-6);

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

    更多关于可以解析的内容可以在here找到。

    【讨论】:

    • 是的,那个似乎比 DateJS 更好。 +1
    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多