如何在javascript的特定日期60天后查找日期?

时间:2013-12-20 09:52:02

标签: javascript date datepicker

我希望在用户按日期选择器以dd / mm / yy格式提交的任何日期之后的60天内找到dd / mm / Y格式的日期。 我试着寻找它,但我得到的是从今天的日期起60天! 请帮助!!!

3 个答案:

答案 0 :(得分:0)

如果您想排除周末,请使用以下内容:

var startDate = "9-DEC-2011";
startDate = new Date(startDate.replace(/-/g, "/"));
var endDate = "", noOfDaysToAdd = 13, count = 0;
while(count < noOfDaysToAdd){
    endDate = new Date(startDate.setDate(startDate.getDate() + 1));
    if(endDate.getDay() != 0 && endDate.getDay() != 6){
       //Date.getDay() gives weekday starting from 0(Sunday) to 6(Saturday)
       count++;
    }
}
// above code  excludes weekends.
alert(endDate);//You can format this date as per your requirement

您可以参考以下问题:

Add no. of days in a date to get next date(excluding weekends)

如果您想要包含周末,请使用以下内容:

var date = new Date();
date.setDate(date.getDate() + 32);
// output will be  Tue Jan 21 2014 15:55:56 GMT+0530 (India Standard Time)

答案 1 :(得分:0)

使用JavaScript日期对象的简单版本:

function toTheFuture(date, days){
  var split = userInput.split("/"),
      //Split up the date and then process it into a Date object
      userDate = new Date(+split[2]+2000, +split[1]-1, +split[0]);

  //Add your days!
  userDate.setDate(userDate.getDate() + days);

  //Return your new dd/mm/yyyy formatted string!
  return addZero(userDate.getDate())+"/"+addZero(userDate.getMonth()+1)+"/"+userDate.getFullYear()
}

//Ensures that if getDate() returns 8 for example, we still get it to output 08
function addZero(num){
  if(num<10){
    num = "0"+num;
  }
  return ""+num;
}

toTheFuture("09/05/13", 60);
//Will return 08/07/2013

使用JavaScript日期对象比大多数人想要的更烦人,有相当多的库(例如MomentJS)可以简化它,就像你期望的那样工作

答案 2 :(得分:0)

这里有三个不同的子问题。首先,解析输入 dd / mm / yy格式化为适合进行日期算术的对象。 做+60天算术。以dd / mm / Y格式格式化结果。

Javascript有一个Date对象,可以很简单 在我看来,你需要算术。添加60天的日期是 很容易

givenDate.setDate(givenDate.getDate() + 60)

setDate方法负责超出范围值,请参阅

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setDate

对于解析,您可以从字符串中提取年,月和日 dd / mm / yy格式(基本上使用字符串split()方法,和 将三个值提供给Date构造函数,如

new Date(year, month, day)

对于格式化,您可以使用Date对象的getter函数进行构建 你的字符串。参见

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

完整代码:

function parse(dateStr) {
  var parts = dateStr.split('/').map(function (digits) {
    // Beware of leading zeroes...
    return parseInt(digits, 10);
  });
  return new Date(1900 + parts[2], parts[1], parts[0]);
}

function format(date) {
  var parts = [
    date.getDate(),
    date.getMonth(),
    date.getYear() + 1900
  ];
  if (parts[0] < 10) {
    parts[0] = '0' + parts[0];
  }
  if (parts[1] < 10) {
    parts[1] = '0' + parts[1];
  }
  return parts.join('/');
}

function add(date, days) {
  date.setDate(date.getDate() + days);
  return date;
}

console.log(format(add(parse('11/06/83'), 60)));
// Outputs: 09/08/1983