【问题标题】:Date validations in typescript打字稿中的日期验证
【发布时间】:2020-03-02 17:25:38
【问题描述】:

我正在学习日期处理,并且我有一个带有开始和结束日期的对象。 前任: 开始日期 = "2019-12-05" 和结束日期 = "2020-05-20"

我想要做的是创建一个条件来检查日期是否不为空,然后开始日期将与现有日期相同或不小于今天日期的新日期。

if ((startDate != null && endDate != null) && (????????????????)) {
    alert('Incorrect date');
     this.dateNotValid = false;
}

代替 ?????????在代码中,我想要一个强制 startdate 为“2019-12-05”或今天的日期“2020-03-02”及以上的逻辑,任何其他日期都应标记警报错误。

【问题讨论】:

  • 使用时刻。 moment 为您提供了许多预定义功能,用于检查小于、等于和更多检查日期
  • 您是否只是在使用Date 对象时遇到问题(假设startDate 和endDate 的类型为Date)?请先尝试使用Date 对象进行简单比较。 stackoverflow.com/a/493018/8109319
  • 您能否澄清“与现有日期相同或不小于今天日期的新日期。”?什么是“现有日期”?
  • @stackoverflow-newbie 这是这个问题的开始日期 2019-12-05
  • 我在做这样的事情:if ((startDate != null && endDate != null) && (startDate

标签: javascript typescript if-statement


【解决方案1】:

我不确定我是否理解a condition that checks if the dates are not empty, and then that the startdate would either be the same as the existing date or a new date that is not less than today's date. 的意思

但我会这样编辑代码:

let myInputDate = new Date('any-date-you-want')

let startDate = new Date('2019-12-05'); // sample date
let endDate = new Date('2020-05-20'); // sample date

if ((!!startDate && !!endDate) && ((myInputDate != startDate) && (myInputDate > endDate))) {
    alert('Incorrect date');
    this.dateNotValid = false;
}

正如@Abhishek 所说,考虑使用moment,这是一个有用的库来处理日期对象。

【讨论】:

  • 看这个:: 就像网页上的用户要选择日期一样,日期不应该小于这个:2019-12-05。此外,日期不应介于此之间:2019-12-06 和 2020-03-01。接受日期应为 2019-12-05 或 2020-03-02->>
  • 我明白了你的逻辑,但我的问题是,我不希望用户提交小于 2019-12-05 的日期以及 2019-12-05 和 2020 之间的任何日期-03-02。有效日期应为现有日期 2019-12-05 或不小于今天的日期 2020-03-02
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-29
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多