2015-10-07 3 views
1

Допустит, теперь дата 10/07/2015, т.е. если я создаю яваскрипт объект даты, как, как показано ниже я получить сегодняшнюю дату как 07/10/2015набора Javascript дата объект до 30 дней

var now = new Date(); 

Итак, если дата 10/07/2015 Я хочу 30 дней назад, т.е. 07/09/2015.

Я сделал, как, как показано ниже, но для этого я получил 31/08/2015

var now = new Date(); 
now .setDate(-30); 

Может кто-нибудь пожалуйста, скажите мне решение этой

+0

' var d = новая дата («08/18/2009»); d.setDate (d.getDate() - 5); ' – Rayon

+0

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

ответ

1

Вы можете попробовать так:

Date.today().add(-30).days(); 

И если вы хотите, то moment.js действительно хорош при работе с датами

moment().subtract(30, 'days'); 

И если вы не хотите использовать библиотеку, то

var now = new Date() 
var prev = new Date().setDate(now.getDate()-30) 
+0

как насчет 'd.setDate (d.getDate() - 30)' –

+0

@AlexMan: - Да это тоже хорошо! –

+0

Нет упоминания об Alex, используя библиотеку Date.js ... – BenG

0

Вы могли бы просто использовать now.getDate():

var now = new Date(); 
 
document.write(now); 
 
now.setDate(now.getDate() - 30); 
 
document.write("<br/>"); 
 
document.write(now);

0

Date объект внутри содержит значение, соответствующее к числу миллисекунд, прошедших с 1 января 1970 года по UTC.

Как таковое, используя это значение (доступное через Date.prototype.valueOf()), вы можете добавить или вычесть любой размер «просто рассчитанного» интервала времени. Просто подсчитав, я имею в виду все, что может быть рассчитано с использованием простой арифметики, такой как (например ..) «1 день 4 часа и 2 минуты» равен (((1 * 24) + 4) * 60 + 2) * 60 * 1000. Вы можете добавить/вычесть, что в любое время пуска и создать новый Date объект:

var startDate = new Date(); 
 
var newDate = new Date(startDate.valueOf() + ((((1 * 24) + 4) * 60 + 2) * 60 * 1000)); 
 

 
alert(newDate);

В конкретном случае дней смещения, просто использовать эту формулу:

days * 24 * 60 * 60 * 1000