【问题标题】:Calculate javascript date [duplicate]计算javascript日期[重复]
【发布时间】:2014-01-10 00:35:41
【问题描述】:

我有日期2013-12-28,我想添加一天或多天。所以如果我再增加一天,它将是2013-12-29
我尝试通过添加它的日期值(日期 28+1)来添加它,它可以工作,但是如果我再添加 7 天呢?日期将是 35,当然它不是有效的日期格式。
有人可以帮我吗?
这是我的脚本示例:

var d = new Date();
var Y = d.getFullYear();
var M = d.getMonth()+1;
var D = d.getDate();
var DT = d.getDate()+1;// what if i + 20 days from today? the format would be invalid

var today = Y+"-"+M+"-"+D;
var tomorrow = Y+"-"+M+"-"+DT;
alert(today+" <> "+tomorrow);
// "<>" means nothing

【问题讨论】:

  • 我会检查的。谢谢

标签: javascript date


【解决方案1】:

如果您在显示的代码中已经有一个日期对象:

 var d = new Date();

...那么您可以像这样添加 7 天:

d.setDate( d.getDate() + 7 );

...如果需要,它会自动增加月份。

进一步阅读:

如果您需要提取年、月和日以便以特定方式格式化结果,请在添加日期之后进行。

【讨论】:

  • +1,从不知道 setDate 会自动递增
  • 啊哈,setDate()。它有帮助:D
【解决方案2】:

您可以尝试使用getdate()setdate()getdate()

var myDate = new Date();
myDate.setDate(myDate.getDate() + 7);

【讨论】:

  • 是的,setDate()。它有帮助
  • @OkiErieRinaldi:- 是的,它对你有用! :)
【解决方案3】:

解决方案是将您的日期字符串转换为 unix 时间戳,然后将 3600 * 24 * 添加到时间戳,然后将其转换回日期字符串。

代码可以如下:

function addDaysToDate(date, days) {
    var time = Date.parse(date) + days * 24 * 3600;
    date = new Date(time);
    return date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate();
}
var date = '2013-12-28';
console.log(addDaysToDate(date, 7));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2015-10-17
    • 2011-06-16
    相关资源
    最近更新 更多