【问题标题】:Editing the year in date field in EXTJS 4.0 is defaulting the year to 2020在 EXTJS 4.0 中编辑日期字段中的年份会将年份默认为 2020
【发布时间】:2014-07-30 12:41:17
【问题描述】:

我在表单中有一个日期字段

        xtype: 'datefield',
        id: 'dateId',           
        maskRe: /[0-9\/]/,
        format   : 'm/d/Y',

例如 - 如果该字段中填充的日期是 2014 年 7 月 30 日。现在我想手动编辑日期,如果我给两个退格键,这意味着 07/30/20。然后单击表单中的某个位置,年份默认为 2020 年 7 月 30 日。如何阻止这被默认为 2020 年。

【问题讨论】:

  • 07/30/20 相当于 07/30/2020。这是预期的正常行为。当年份只有两位数时,总是最后两位数,所以 20 == 2020、00 == 2000、14 == 2014 等等。
  • 当日期字段中的日期不以 0 开头时发生这种情况,即 01,02,03..意思是当它是 08/08/2014 时,给年份两个退格键,不默认为2020...当它是 08/10/2014...然后给年份两个退格键,默认为 2020 为什么它会这样?

标签: extjs4.2


【解决方案1】:

我在评论中回答了这个问题,但我会尽可能多地扩展该评论​​,并使其尽可能清晰。以下是原评论:

“07/30/20 相当于 07/30/2020。这是预期的正常行为。当年份只有两位数时,它始终是最后两位数,所以 20 == 2020, 00 == 2000、14 == 2014 等等。”

那么,让我通过一个例子来指导你。

  • 您在日期字段中输入 08/08/2014
  • 按两次退格键,删除 14
  • 现在你有08/08/20
  • 写日期时,年份可以写为 2 位或 4 位。如果写为 2 位,则使用最后两位。因此,第 20 年与 2020 年相同。
  • 日期字段具有处理 2 位日期的逻辑,因此它知道 08/08/20 实际上是 08/08/2020

这就是为什么当您在日期字段中有08/08/20 时,它会将其解释为08/08/2020

【讨论】:

  • 当我在日期字段中有 08/08/20 时,它不会将其解释为 08/08/2020。相反,它说工具提示为“20 年 8 月 8 日不是有效日期,它必须采用 m/d/Y 格式
  • 这与您在原始问题和第一条评论中所说的完全不同。你说它默认 08/08/20 到 08/08/2020。您对指示其为无效日期的工具提示只字未提。如果这确实是您正在处理的实际问题,您应该删除此问题并创建一个新问题,解释您遇到的真正问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 2012-07-14
  • 1970-01-01
  • 2018-04-24
  • 2013-03-01
  • 1970-01-01
相关资源
最近更新 更多