Как я могу рассчитать "вчерашний день" в JavaScript?
Javascript Вчера
Ответ 1
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)
Ответ 2
Попробуйте это
var d = new Date();
d.setDate(d.getDate() - 1);
Ответ 3
Не очень эффективно, но как oneliner:
var yesterday = new Date(new Date().setDate(new Date().getDate()-1));
Приведенное выше создает три объекта Date
, которые бесполезно расточительны. Это можно свести к одному экземпляру с помощью:
var yesterday = (function(){this.setDate(this.getDate()-1); return this})
.call(new Date)
Или, если вы предпочитаете:
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
Или, если вы предпочитаете ES6 со стрелкой:
let yesterday = ( d => new Date(d.setDate(d.getDate()-1)) )(new Date);
Ответ 4
Удивительно, что нет ответа на самое легкое решение для кросс-браузера
Чтобы найти то же самое вчера:
var yesterday = new Date(Date.now() - 86400000); // that is: 24 * 60 * 60 * 1000
То есть, если вы хотите освободиться от зависимости, в противном случае я бы рекомендовал использовать http://momentjs.com
Ответ 5
Чтобы обобщить вопрос и использовать другие вычисления diff:
var yesterday = new Date((new Date()).valueOf() - 1000*60*60*24);
это создает новый объект даты, основанный на значении "now" как целое число, которое представляет эпоху unix в миллисекундах, вычитая один день.
Два дня назад:
var twoDaysAgo = new Date((new Date()).valueOf() - 1000*60*60*24*2);
Час назад:
var oneHourAgo = new Date((new Date()).valueOf() - 1000*60*60);
Ответ 6
//Create a date object using the current time
var now = new Date();
//Subtract one day from it
now.setDate(now.getDate()-1);
Ответ 7
Это будет производить вчера в 00:00 с точностью до минуты
var d = new Date();
d.setDate(d.getDate() - 1);
d.setTime(d.getTime()-d.getHours()*3600*1000-d.getMinutes()*60*1000);
Ответ 8
d.setHours(0,0,0,0);
выполнит трюк
Ответ 9
Попробуйте это, работает для меня:
var today = new Date();
var yesterday = new Date(today.setDate(today.getDate() - 1)); `
Это дало мне объект даты за вчера