Как получить 30 дней до текущей даты?
у меня есть поле ввода начального календаря и поле ввода конечного календаря. Мы хотим, чтобы поле ввода календаря по умолчанию начиналось за 30 дней до текущей даты, а поле ввода календаря конца было текущей датой. Вот моя дата Варс.
var today = new Date(),
dd = today.getDate(),
mm = today.getMonth(),
yyyy = today.getFullYear(),
month = ["January", "February", "March",
"April", "May", "June", "July", "August",
"September", "October" "November", "December"],
startdate = month[mm] + ", " + yyyy.toString();
конечная дата будет что-то вроде var enddate = startdate - 30;
очевидно, что это не сработает.
так что если текущая дата 30 декабря 2011 года я бы хотел, чтобы дата начала читать 1 декабря 2011 года.
EDIT: на мой вопрос был дан ответ... что-то вроде того. Date.today();
и Date.today().add(-30);
работать, но мне нужна дата в формате January 13, 2012
. Не Fri Jan 13 2012 10:48:56 GMT -055 (EST)
. Какая-нибудь помощь?
more EDIT: на момент написания этой статьи это 2018 год. Просто используйте момент.js. Это самое лучшее.
9 ответов:
попробуйте использовать отличный Datejs JavaScript библиотека дат (оригинал больше не поддерживается, так что вы можете быть заинтересованы в эта вилка активно поддерживается вместо):
Date.today().add(-30).days(); // or... Date.today().add({days:-30});
[Edit]
Смотрите также отличный момент.дата и JS библиотека JavaScript:
moment().subtract(30, 'days'); // or... moment().add(-30, 'days');
попробуй такое
var today = new Date() var priorDate = new Date().setDate(today.getDate()-30)
Как отметил @Neel, этот метод возвращает в формате метки времени Javascript. Чтобы преобразовать его обратно в объект даты, вам нужно передать выше в новый объект даты;
new Date(priorDate)
.
startDate = new Date(today.getTime() - 30*24*60*60*1000);
The
.getTime()
метод возвращает стандартную метку времени JS (миллисекунды с 1/1970 января), на которой вы можете использовать регулярные математические операции, которые могут быть возвращены непосредственно к объекту даты.
Я использую дата.js. Он легко справляется с этим и заботится обо всех високосных гадостях.
Я предпочитаю момент js
startDate = moment().subtract(30, 'days').format('LL') // January 29, 2015 endDate = moment().format('LL'); // February 28, 2015
Javascript может обрабатывать его без каких-либо внешних библиотек.
var today = new Date(); var dateLimit = new Date(new Date().setDate(today.getDate() - 30)); document.write(today + "<br/>" + dateLimit)