0

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

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

4

4 回答 4

2

你可以试试这个:

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

这是对Ext Docs的参考

于 2013-10-04T05:51:52.643 回答
1

我相信这应该有效。它比简单地添加 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)
    }
于 2013-10-04T06:06:30.327 回答
0

尝试这个

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')
   }   
于 2013-10-04T06:07:19.270 回答
0

为了完整性。其他答案是指 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();})();
}
于 2013-10-04T06:47:55.177 回答