Member 14013562 Ответов: 0

Как создать новую дату, используя 2 даты


У меня есть 2 даты, и мне нужно создать 3-ю дату, используя эти 2 даты.
Если
presentdate = "11/30/2018" and enddate = "1/29/2019", then newdate = "12/30/2018"


Поскольку даты JavaScript - месяцев варьируются от 0 до 11, а также даты немного запутаны, я не получаю желаемых результатов.

Что я уже пробовал:

/Step1:
  var sDt = new Date(startDate);
  var pDt = new Date(presentDate);

//Step2: Doing Step 3 directly returns invalid date so using the following step worked in returning dates
  var presentDt = (pDt.getMonth() + 1) + '/' + pDt.getDate() + '/' + pDt.getFullYear();
  var sDt = (sDt.getMonth() + 1) + '/' + sDt.getDate() + '/' + sDt.getFullYear();
 
//Step 3

  var mPresent = moment(presentDt, "MM/DD/YYYY");
  var mStart = moment(sDt, "MM/DD/YYYY");

//Step 4
  // Create a new momnt object compliant with your needs
  var pastStart = moment({
    year: mPresent.year(), // get presentDt's year
    month: mPresent.add(1, 'month').month(), // get presentDt's month
    date: mStart.add(1, 'day').date() // get startdt day of the month and add 1 day to it
  });

  // Display the result in the format you need
  console.log(pastStart.format("MM/DD/YYYY"));

});



Это также возвращает недопустимую дату, если моя дата "1/30/2019" и endate ="5/30/2019", потому что когда вы берете end day + 1 и создаете новую дату, февраль не имеет 31 дня. ИТР и возвращает неверную дату.

Любая помощь будет оценена по достоинству. Спасибо.

MadMyche

Где определяется "конечный день"? И что именно вы хотите, чтобы "следующая дата" была относительно входных данных 2 дат?

Member 14013562

Обновленный

0 Ответов