Нахождение даты путем вычитания X количеств дней из конкретной даты в JavaScript

Декораторы

Декораторы позволяют обертывать функцию или метод в другой функции, которая может добавить функциональность, изменить аргументы или результаты, и т.д. Вы пишете декораторам одну строку выше функционального определения, начиная "в" знаке.

Пример показывает print_args декоратор, который печатает аргументы украшенной функции прежде, чем назвать его:

>>> def print_args(function):
>>>     def wrapper(*args, **kwargs):
>>>         print 'Arguments:', args, kwargs
>>>         return function(*args, **kwargs)
>>>     return wrapper

>>> @print_args
>>> def write(text):
>>>     print text

>>> write('foo')
Arguments: ('foo',) {}
foo

46
задан Galghamon 27 July 2009 в 12:20
поделиться

4 ответа

Simply:

yourDate.setDate(yourDate.getDate() - daysToSubtract);
80
ответ дан 26 November 2019 в 20:14
поделиться

Here's an example, however this does no kind of checking (for example if you use it on 2009/7/1 it'll use a negative day or throw an error.

function subDate(o, days) {
// keep in mind, months in javascript are 0-11
return new Date(o.getFullYear(), o.getMonth(), o.getDate() - days);;
}
1
ответ дан 26 November 2019 в 20:14
поделиться

This is what I would do. Note you can simplify the expression, I've just written it out to make it clear you are multiplying the number of days by the number of milliseconds in a day.

 var newDate = new Date( yourDate.getTime() - (days * 24 * 60 * 60 * 1000) );
0
ответ дан 26 November 2019 в 20:14
поделиться

Еще один вариант, о котором я писал:

Библиотека DP_DateExtensions

Вероятно, это излишне, если ВСЕ, что вы хотите сделать, это одно вычисление, но если вы собираетесь делать больше манипуляций с датой, вы можете найти его полезным. 122] Поддерживает форматирование даты / времени, математику даты (добавление / вычитание частей даты), сравнение даты, синтаксический анализ даты и т. Д.

0
ответ дан 26 November 2019 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: