你能帮我解决这个问题吗?我尝试制作一个函数,该函数接收类型为Date
的参数,例如20年11月12日。我希望它能在前一天归还。
function getPreviousDay(d) {
var dateObj = new Date(d);
var previousDay = dateObj.setDate(dateObj.getDate() - 1);
return previousDay;
}
console.log(getPreviousDay(new Date())); //1606809601830
但正如您所看到的,函数返回:1606809601830,我不知道为什么。谢谢你们,伙计们!
一个简单的ES6一行应该是:
const getPreviousDay = d => d.setDate(d.getDate() - 1) && d
console.log(getPreviousDay(new Date()));
此函数更改传递的Date
对象的日期并返回。无需创建中间对象。
Typescript版本(带有类型检查,以确保始终向其传递Date对象,而不是字符串(:
const getPreviousDay = (d:Date): Date => d.setDate(d.getDate() - 1) && d
您不想返回以毫秒为单位的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月12日(这样返回。
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()));