提问者:小点点

将数字添加到节点js中的今天日期后返回新日期


我有一个合乎逻辑的问题,可能听起来很简单,但我在解决这个问题时面临着问题。 情况是,我有一些天数,现在是过期天数,通过使用这个数字,我必须创建一个过期日期,让我给你一个例子。

if today's date is 25-07-2020 and no.of expire days is 10 then expire date should be 04-08-2020

我想在节点js中实现这个,现在我正在使用date方法获取今天的日期。

const today = new Date().toISOString().replace(/\T.+/, '')

这返回今天的日期,但现在我很困惑,我怎么才能得到我的到期日期后,增加了天数。 所以请帮帮我。

谢了。


共3个答案

匿名用户

您需要在此处使用setdate

   var currentDate = new Date();
   currentDate.setDate(currentDate.getDate() + 10);
   console.log(currentDate) //this will have the new date

匿名用户

您可以使用一个函数来完成此操作:

function addDays(date, days) {
  const copy = new Date(Number(date))
  copy.setDate(date.getDate() + days)
  return copy
}

const date = new Date();
const newDate = addDays(date, 10);

匿名用户

因此,您不能通过简单地操作字符串形式的日期来添加10天,因为您需要考虑各种边缘情况(月的变化,年的变化,时区的变化)。

有很多很好的库可以帮助您,比如date-fns或moment.js。

但是,如果您想在没有库的情况下完成此操作,则非常简单:

const now = +new Date(); // Gets the date as ms since epoch
const expiry = new Date(now + (10 * 24 * 60 * 60 * 1000)); Adds 10 days worth of ms