日期函数只计算工作日

时间:2011-01-31 08:09:53

标签: javascript

要求是一个文本框,其中包含当前日期,日期应显示当前日期+接下来的五天,应仅计算工作日(星期一至星期五)并希望在文本框中显示  有人发给我这个代码  请告诉我是否有任何描述

2 个答案:

答案 0 :(得分:2)

目前尚不清楚你想要做什么,但这些事情应该会有所帮助:

  1. 您可以使用三参数构造函数创建特定日期的Date个对象:Date(year, month, date)其中year是全年(例如,2011),{{1 }是月份编号(month = 1月),0是月份的日期(1-28 / 29/30/31,具体取决于)。 E.g:

    date
  2. 您可以使用var dt = new Date(2011, 0, 31); // January 31st, 2011 函数告知给定Date代表的哪一天;返回getDay =星期日,0 =星期一等的数字:

    1
  3. 您可以将var day = dt.getDay(); if (day == 6/*Saturday*/ || day == 0/*Sunday*/) { // It's Saturday or Sunday } else { // It isn't, it's a weekday } 个实例推进到第二天,如下所示:

    Date

    dt = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate() + 1); 构造函数将为您处理下个月(可能还有一年)的包装。

  4. 您可以通过为字段的DOM元素分配Date属性来设置文本字段的值。您可以通过多种方式获取DOM元素。一种方法是为元素赋予value属性(必须是唯一的),然后使用

    id

    ......查一查。

  5. 你显然需要一个循环来建立你的五个工作日的清单。

答案 1 :(得分:0)

这应解决部分问题,至少如何将x天添加到日期并跳过周末......

Date.prototype.addWeekDays = function(days)
    {
        var d = this;
        var dow = d.getUTCDay();

        var daysToAdd = (dow + days < 6) ? days : days + 2;

       return new Date(
        d.getUTCFullYear(), 
        d.getUTCMonth(), 
        d.getUTCDate() + daysToAdd, 
        d.getUTCHours(), 
        d.getUTCMinutes(), 
        d.getUTCSeconds(), 
        d.getUTCMilliseconds());
     };

示例:var d = new Date(“2011年2月5日”)。addWeekDays(1); //这应该返回1(星期一)