【问题标题】:Subtracting days in new Date() in a view在视图中减去 new Date() 中的天数
【发布时间】:2014-10-09 14:06:29
【问题描述】:

我得到了这段代码:

    xtype: 'datefield',
    editable: false,
    itemId: 'start-date-field',
    fieldLabel: 'Från',
    labelWidth: 50,
    format: 'Y-m-d',
    value: new Date(),
    disabled: true

我试图从“new Date()”中减去一些天数,但我的 googlefu 不够好,这对大多数人来说可能很容易。我试过 new Date().getDay - 30 但这只会产生错误。

【问题讨论】:

  • new Date().getDate()+1 有效,但 -1 无效,为什么?
  • 确实如此,请参阅下面的答案。
  • 你添加了一个函数,我只是想知道为什么 new Date().getDate()-30 不起作用。
  • 嗯,它在某种程度上也“有效”,但不是您期望的方式。我在回答评论中“解释”了它;-)

标签: javascript extjs datefield


【解决方案1】:
xtype: 'datefield',
editable: false,
itemId: 'start-date-field',
fieldLabel: 'Från',
labelWidth: 50,
format: 'Y-m-d',
value: (function() {var lastMonth = new Date(); return lastMonth.setDate(lastMonth.getDate()-30), lastMonth;})(),
disabled: true

JSFiddle

【讨论】:

  • 感谢它有效,但为什么我不能使用我上面在 cmets 中建议的解决方案?
  • 好吧,因为new Date().getDate()+1 被解析为(new Date()).getDate()+1,而new Date().getDate()-1 被解析为(new Date().getDate())-1。不过不太清楚为什么。
  • 如果我输入 (new Date()).getDate()-1 而不是编译器解析它,它应该工作吗?还是编译器会进一步编译它?
  • 其实没关系,你总会用 Date#getDate(); 得到日期(即月份中的哪一天);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 2012-08-06
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
相关资源
最近更新 更多