0

你能帮我解决这个问题吗?我试图制作一个接收类型参数的函数,Date例如 12.11.2020。我希望它在前一天返回。

function getPreviousDay(d) {
  var dateObj = new Date(d);
  var previousDay = dateObj.setDate(dateObj.getDate() - 1);
  return previousDay;
}

console.log(getPreviousDay(new Date())); //1606809601830

但是如你所见,函数返回:1606809601830,我不知道为什么。感谢你们!

4

3 回答 3

1

一个简单的 ES6 单行代码是:

const getPreviousDay = d => d.setDate(d.getDate() - 1) && d

console.log(getPreviousDay(new Date())); 

这个函数改变Date你传递给它的对象的日期,并返回它。无需创建中介。

打字稿版本(带有类型检查,以确保您始终将其传递给 Date 对象,而不是字符串):

const getPreviousDay = (d:Date): Date => d.setDate(d.getDate() - 1) && d
于 2020-12-02T09:37:11.903 回答
0

您不想返回Date.prototype.setDate()以毫秒为单位的日期的结果,您想返回变异的dateObj

function getPreviousDay(d) {
  var dateObj = new Date(d);
  dateObj.setDate(dateObj.getDate() - 1);
  return dateObj ;
}

console.log(getPreviousDay(new Date()));

于 2020-12-02T09:34:55.737 回答
0

此代码在昨天日期(1.12.2020)这样返回。

function getPreviousDay(d) {
  var dateObj = new Date(d);
  dateObj.setDate(dateObj.getDate()-1);
  return dateObj.getDate() + '.' + (dateObj.getMonth()+1) + '.' + dateObj.getFullYear();
}

console.log(getPreviousDay(new Date())); 

于 2020-12-02T10:03:08.970 回答