Как я могу рассчитать вчера как дату в JavaScript?
javascript
date
Омега
источник
источник
getDate
возвращает день месяца (например, 1 - 31), но фактическиsetDate(0)
устанавливает дату на последний день предыдущего месяца. Это работает во всех браузерах, хотя?Не очень эффективно, но как вкладчик:
Вышеизложенное создает три
Date
объекта, которые излишне расточительны. Это может быть уменьшено до одного экземпляра с помощью:Или, если вы предпочитаете:
Или, если вы предпочитаете ES6 с функцией стрелки:
источник
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
Попробуй это
источник
Удивительно, но нет ответа на вопрос о самом простом кросс-браузерном решении
Чтобы найти точно такое же время вчера:
То есть, если вы хотите избавиться от зависимости, в противном случае я бы рекомендовал использовать http://momentjs.com
источник
Для обобщения вопроса и других расчетов используйте:
это создает новый объект даты, основанный на значении «сейчас» в виде целого числа, которое представляет эпоху Unix в миллисекундах, вычитая один день.
Два дня назад:
Час назад:
источник
new Date(Date.parse(new Date()) - 86400000)
. Хотя мне нравится Date.now (), так что, возможно, я попробую это. Это сохранит дополнительную дату.Я использую библиотеку моментов , она очень гибкая и простая в использовании.
В твоем случае:
источник
subtract
вместоadd
источник
источник
источник
Это произведет вчера в 00:00 с точностью до минут
источник
сделает свое дело
источник
d.setHours(-1,0,0,0)
. Это вернет вчерашнюю дату, но это может быть не то время, которое вы хотите (23:00:00)Попробуйте, у меня работает:
Это вернуло мне объект даты на вчера
источник
var yesterday = new Date(); yesterday.setDate(today.GetDate() - 1)
так что вы можете использовать и сегодня, и вчераВот один вкладыш, который используется для получения вчерашней даты в формате YYYY-MM-DD в тексте и обработки смещения часового пояса.
Это может быть явно изменено на дату возвращения, х дней назад во времени. Чтобы включить время и т. Д.
источник
Если вы хотите получить дату вчерашнего дня и отформатировать ее в удобочитаемом формате, подумайте о создании пользовательского
DateHelper
объекта, который выглядит примерно так:(см. также эту скрипку )
источник
Вы можете использовать моменты, это очень полезно, вы можете достичь многого с помощью этой библиотеки.
Получить вчерашнюю дату с текущим временем
moment().subtract(1, 'days').toString()
Получить вчерашнюю дату с начала даты
moment().subtract(1, 'days').startOf('day').toString()
источник
решить краевую задачу даты (2020, 01, 01) -> 2019, 12, 31
источник
«Date.now () - 86400000» не будет работать в день окончания перехода на летнее время (у которого в этот день 25 часов)
Другой вариант - использовать Closure:
источник