Jam*_*urz 398
var date = new Date();
date ; //# => Fri Apr 01 2011 11:14:50 GMT+0200 (CEST)
date.setDate(date.getDate() - 1);
date ; //# => Thu Mar 31 2011 11:14:50 GMT+0200 (CEST)
Run Code Online (Sandbox Code Playgroud)
Koo*_*Inc 82
不是很有效,但作为oneliner:
var yesterday = new Date(new Date().setDate(new Date().getDate()-1));
Run Code Online (Sandbox Code Playgroud)
上面创造了三个Date不必要浪费的物体.这可以简化为单个实例化:
var yesterday = (function(){this.setDate(this.getDate()-1); return this})
.call(new Date)
Run Code Online (Sandbox Code Playgroud)
或者,如果您愿意:
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
Run Code Online (Sandbox Code Playgroud)
或者,如果您更喜欢带箭头功能的ES6:
let yesterday = ( d => new Date(d.setDate(d.getDate()-1)) )(new Date);
Run Code Online (Sandbox Code Playgroud)
ash*_*ram 63
试试这个
var d = new Date();
d.setDate(d.getDate() - 1);
Run Code Online (Sandbox Code Playgroud)
Fab*_*ani 55
令人惊讶的是,没有答案指向最简单的跨浏览器解决方案
要找到昨天完全相同的时间:
var yesterday = new Date(Date.now() - 86400000); // that is: 24 * 60 * 60 * 1000
Run Code Online (Sandbox Code Playgroud)
那就是如果你想要无依赖性,否则我建议使用http://momentjs.com
小智 17
要概括问题并使用其他差异计算:
var yesterday = new Date((new Date()).valueOf() - 1000*60*60*24);
Run Code Online (Sandbox Code Playgroud)
这将基于"now"的值创建一个新的日期对象作为整数,表示以毫秒为单位减去一天的unix时期.
两天前:
var twoDaysAgo = new Date((new Date()).valueOf() - 1000*60*60*24*2);
Run Code Online (Sandbox Code Playgroud)
一小时前:
var oneHourAgo = new Date((new Date()).valueOf() - 1000*60*60);
Run Code Online (Sandbox Code Playgroud)
小智 7
//Create a date object using the current time
var now = new Date();
//Subtract one day from it
now.setDate(now.getDate()-1);
Run Code Online (Sandbox Code Playgroud)
我使用时刻库,它非常灵活且易于使用.
在你的情况下:
let yesterday = moment().add(-1, 'day').toDate();
Run Code Online (Sandbox Code Playgroud)
======更新======
let yesterday = moment().subtract(1, 'day').toDate();
Run Code Online (Sandbox Code Playgroud)
var today = new Date();
var yesterday1 = new Date(new Date().setDate(new Date().getDate() - 1));
var yesterday2 = new Date(Date.now() - 86400000);
var yesterday3 = new Date(Date.now() - 1000*60*60*24);
var yesterday4 = new Date((new Date()).valueOf() - 1000*60*60*24);
console.log("Today: "+today);
console.log("Yesterday: "+yesterday1);
console.log("Yesterday: "+yesterday2);
console.log("Yesterday: "+yesterday3);
console.log("Yesterday: "+yesterday4);Run Code Online (Sandbox Code Playgroud)
小智 5
这将在昨天00:00以分钟精度产生
var d = new Date();
d.setDate(d.getDate() - 1);
d.setTime(d.getTime()-d.getHours()*3600*1000-d.getMinutes()*60*1000);
Run Code Online (Sandbox Code Playgroud)
小智 5
new Date(new Date().setDate(new Date().getDate()-1))
Run Code Online (Sandbox Code Playgroud)