【问题标题】:Add X days to the specified date [duplicate]将 X 天添加到指定日期 [重复]
【发布时间】:2012-10-25 13:51:53
【问题描述】:

可能重复:
How to add number of days to today’s date?

我想将 X 天(其中 X 是我之前指定的数字)添加到特定日期。

例如。日期是29/11/2012(格式:DD/MM/YYYY),我想在这个日期上加上5天,所以输出应该是03/12/2012

我尝试了什么:

var days_to_add = 5;
$myyear = 2012;
$mymonth = 11;
$myday = 29;
date = new Date();
date.setFullYear($myyear,$mymonth,$myday);
date.setDate(date.getDate()+(days_to_add-1));
alert(date.getDate()+'/'+date.getMonth()+'/'+date.getFullYear());

它正在工作,但只有当日期不超过给定日期的下个月时,否则输出是好的。

你们有什么解决办法吗?

【问题讨论】:

  • 月份应该会自动更新。
  • @Diodeus 不是真的 - 我想在 specified 日期上添加一定的天数,而那个人会添加到当前日期。
  • @dystroy 是的,这就是主要问题;它没有。在那种情况下,我看到了0

标签: javascript date


【解决方案1】:

像这样更简单的东西?

 var fiveDaysLater = new Date( existingDate.getTime() );
 fiveDaysLater.setDate(fiveDaysLater.getDate() + 5);

【讨论】:

  • existingDate 是什么?
  • @Diodeus 的链接可以帮助解决这个问题 var dd = someDate.getDate(); var mm = someDate.getMonth() + 1; var y = someDate.getFullYear(); var someFormattedDate = dd + '/'+ mm + '/'+ y;
  • 只需更改 existingDate 而不是 someDate :)
【解决方案2】:

您的问题不在于添加日期,因为 setDate 函数会根据需要自动增加年份或月份:

如果您指定的参数超出预期范围,则 setDate 尝试相应地更新 Date 对象中的日期信息

但是您没有正确创建日期。改变

$myyear = 2012;
$mymonth = 11;
$myday = 29;
date = new Date();
date.setFullYear($myyear,$mymonth,$myday);

$myyear = 2012;
$mymonth = 11;
$myday = 29;
date = new Date($myyear,$mymonth,$myday);

Date 构造函数在 [0, 11] 中占用一个月。如果您希望 11 是 11 月而不是 12 月,请使用

date = new Date($myyear,$mymonth-1,$myday);

getMonth 在 [0, 11] 中返回一个整数,这可能也让你感到惊讶。如果您想使用通常的日期格式,您需要输出date.getMonth()+1

alert(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());

如果你想添加前导零,你可以这样做:

alert(
     (date.getDate()<10 ? "0" : "") + date.getDate()
     +'/'+
     (date.getMonth()<9 ? "0" : "") + (date.getMonth()+1)
     +'/'+
     date.getFullYear() 
);

Demonstration

请注意,如果您有很多日期操作要做,您应该考虑使用像 date.js 这样的库。

【讨论】:

  • 不工作,看现场演示:jsfiddle.net/x36gc
  • 它有效。阅读更新的答案。
  • 是的,但是为什么它显示2013 而指定月份是 11 月?它应该输出03/12/2012 不应该吗?
  • 对于 Date 构造函数来说,11 月不是 11 月,而是 12 月...
  • 好的。对不起;它现在工作正常,但是有没有一种“方法”可以将前导零添加到一个数字几天或几个月?
猜你喜欢
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-26
  • 2017-12-03
  • 2017-04-15
相关资源
最近更新 更多