在单行中使用 JavaScript 向 DateTime 添加天数

Add days to DateTime using JavaScript in single line

本文关键字:DateTime 添加 JavaScript 单行中      更新时间:2023-09-26

有表格,需要从当前日期算起通过三天。我写了以下代码不起作用

var fb_form_end_date = {
  xtype : 'hidden',
  name  : 'PLAN_DATE_END',
  value : ((new Date()).getData()+3).format('d-m-Y')
}

我知道可以使用此解决方案:

var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+3);
var fb_form_end_date = {
      xtype : 'hidden',
      name  : 'PLAN_DATE_END',
      value : tomorrow
    }

但是,是否可以在没有任何额外定义的情况下在一行上完成所有操作?

使用 extjs 3.4

你可以试试这个:

var fb_form_end_date = {
  xtype : 'hidden',
  name  : 'PLAN_DATE_END',
  value : new Date().add(Date.DAY, 3)
}

这是对 Ext 文档的引用

我相信这应该有效。这比简单地将 3 加到 .getDate() 更准确,因为这种方法可以为您提供当月实际上不存在的日子,例如 32 日。它也不依赖于任何库。

new Date(Date.now()+86400000*3)

所以在你的代码中,它看起来像:

var fb_form_end_date = {
      xtype : 'hidden',
      name  : 'PLAN_DATE_END',
      value : new Date(Date.now()+86400000*3)
    }

试试这个

var fb_form_end_date = {
       xtype : 'hidden',
       name  : 'PLAN_DATE_END',
       value : (new Date((new Date()).setDate((new Date()).getDate() + 3))).format('d-m-Y')
   }   

为了完整起见。 其他答案指的是 Date.add() 和 Date.format(),它们在 vanilla javascript 中都不存在。 如果您出于某种原因真的希望这一切都在一行上,并且除了对象本身之外无法定义自己的变量,那么这将这样做:

var fb_form_end_date = {
    xtype : 'hidden',
    name  : 'PLAN_DATE_END',
    value : (function() { var d = new Date(new Date().getTime() + 86400000*3); return d.getDate() + '-' + d.getMonth() + '-' + d.getFullYear();})();
}