我想通过从JavaScript中减去特定日期的X天数来查找日期。我的JavaScript函数接受2个参数。一个是日期值,另一个是需要减去的天数。
例如,我将我的论点日期定为2009年7月27日,我将我的另一个论点作为3传递。所以我想计算2009年7月27日前3天的日期。所以我们得到的日期是2009年7月24日这在JavaScript中是如何实现的。谢谢你的帮助。
答案 0 :(得分:81)
简单地:
yourDate.setDate(yourDate.getDate() - daysToSubtract);
答案 1 :(得分:22)
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()
);
}
答案 2 :(得分:9)
永远不要寻求这个解决方案 yourDate.setDate(yourDate.getDate() - daysToSubtract);
如果您的日期是任何月份的第1天并且您想要删除某些日子,则不会有效。
取而代之的是以下解决方案,它始终有效
var newDate = new Date(yourDate.getTime() - (days * 24 * 60 * 60 * 1000));
答案 3 :(得分:2)
我在这里发布一个答案,并以特定格式返回日期。
首先,您可以获取当前日期 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
。
Check Live Demo here 希望这个答案能帮到你。
答案 4 :(得分:1)
这是一个例子,但这不做任何检查(例如,如果你在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);;
}
答案 5 :(得分:0)
这就是我要做的。请注意,您可以简化表达式,我只是将其写出来表明您将天数乘以一天中的毫秒数。
var newDate = new Date( yourDate.getTime() - (days * 24 * 60 * 60 * 1000) );
答案 6 :(得分:0)
我写的另一个选项是:
如果您想做的只是一次计算,那可能有点过头了,但是如果您要进行更多日期操作,您可能会发现它很有用。
支持日期/时间格式,日期数学(加/减日期部分),日期比较,日期解析等。
答案 7 :(得分:0)
这是参考上述答案 检查这个小提琴
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;
答案 8 :(得分:0)
我创建了一个用于日期操作的函数。您可以添加或减去任何天数,小时数,分钟数。
function dateManipulation(date, days, hrs, mins, operator) {
date = new Date(date);
if (operator == "-") {
var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
var newDate = new Date(date.getTime() - durationInMs);
} else {
var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
var newDate = new Date(date.getTime() + durationInMs);
}
return newDate;
}
现在,通过传递参数来调用此函数。例如,这是一个函数调用,用于获取从今天起3天之前的日期。
var today = new Date();
var newDate = dateManipulation(today, 3, 0, 0, "-");