Ответ 1
Просто:
yourDate.setDate(yourDate.getDate() - daysToSubtract);
Я хочу найти дату, вычитая X количество дней с определенной даты в JavaScript. Моя функция JavaScript принимает 2 параметра. Одним из них является значение даты, а другое - количество дней, которое необходимо вычесть.
Например, я передаю дату моего аргумента как 27 июля 2009 года, и я передаю свой другой аргумент как 3. Поэтому я хочу рассчитать дату за 3 дня до 27 июля 2009 года. Таким образом, итоговая дата, которую мы должны получить, - 24 июля 2009 года Как это возможно в JavaScript. Спасибо за любую помощь.
Просто:
yourDate.setDate(yourDate.getDate() - daysToSubtract);
function date_by_subtracting_days(date, days) {
return new Date(
date.getFullYear(),
date.getMonth(),
date.getDate() - days,
date.getHours(),
date.getMinutes(),
date.getSeconds(),
date.getMilliseconds()
);
}
Никогда не используйте это решение yourDate.setDate(yourDate.getDate() - daysToSubtract);
он не будет работать, если ваша дата будет 1-го числа любого месяца, и вы хотите удалить несколько дней, скажем, 1.
Вместо этого перейдите к решению ниже, которое будет работать всегда
var newDate = new Date (yourDate.getTime() - (дни * 24 * 60 * 60 * 1000));
Здесь я отправляю еще один ответ и верну дату в определенном формате.
Сначала вы можете получить текущую дату 10/08/2013, как показано ниже
function Cureent_Date() {
var today_GMT = new Date();
var dd = today_GMT.getDate();
var mm = today_GMT.getMonth() + 1; //January is 0!
var yyyy = today_GMT.getFullYear();
if (dd < 10) {
dd = '0' + dd
}
if (mm < 10) {
mm = '0' + mm
}
current_date = mm + '/' + dd + '/' + yyyy;
alert("current_date"+current_date);
Back_date();
}
Теперь верните дату на основе X дней
function Back_date()
{
var back_GTM = new Date(); back_GTM.setDate(back_GTM.getDate() - 2); // 2 is your X
var b_dd = back_GTM.getDate();
var b_mm = back_GTM.getMonth()+1;
var b_yyyy = back_GTM.getFullYear();
if (b_dd < 10) {
b_dd = '0' + b_dd
}
if (b_mm < 10) {
b_mm = '0' +b_mm
}
var back_date= b_mm + '/' + b_dd + '/' + b_yyyy;
alert("back_date"+back_date);
}
Итак, Сегодня 10/08/2013
, поэтому он вернет 10/06/2013
.
Проверить демо-версию здесь Надеюсь, этот ответ поможет вам.
Здесь пример, однако это не делает никакой проверки (например, если вы используете его в 2009/7/1, он будет использовать отрицательный день или выбросить ошибку.
function subDate(o, days) {
// keep in mind, months in javascript are 0-11
return new Date(o.getFullYear(), o.getMonth(), o.getDate() - days);;
}
Это то, что я сделал бы. Обратите внимание, что вы можете упростить выражение, я только что написал его, чтобы понять, что вы умножаете количество дней на количество миллисекунд в день.
var newDate = new Date( yourDate.getTime() - (days * 24 * 60 * 60 * 1000) );
Еще один вариант, который я написал:
Вероятно, это превысит, если ВСЕ, что вы хотите сделать, это один расчет, но если вы собираетесь делать больше манипуляций с датами, вы можете найти его полезным.
Поддерживает форматирование даты и времени, математику даты (части добавления/вычитания даты), сравнение даты, синтаксический анализ и т.д.
это относится к приведенному выше ответу проверьте эту скрипту
https://jsfiddle.net/uniyalguru/azh65aa0/
function Cureent_Date() {
var today_GMT = new Date();
var dd = today_GMT.getDate();
var mm = today_GMT.getMonth() + 1; //January is 0!
var yyyy = today_GMT.getFullYear();
if (dd < 10) {
dd = '0' + dd
}
if (mm < 10) {
mm = '0' + mm
}
current_date = mm + '/' + dd + '/' + yyyy;