【问题标题】:From date to date validation using javascript使用javascript从日期到日期验证
【发布时间】:2020-03-15 09:10:35
【问题描述】:

我想验证从现在到现在。我的日期格式是 d/m/Y H:i

这是我的代码:

    var startDate = new Date($('#fromdate').val());
    var endDate = new Date($('#todate').val());
    if (endDate.getTime() <= startDate.getTime()) {
        return [false,"To Date cannot be less than From Date"];
    }else{
        return [true,""];
    }

结果显示“无效日期”。

这里的日期格式不同。如何在传递给 Date 函数之前更改日期格式?

【问题讨论】:

标签: javascript jquery validation datetime


【解决方案1】:

您可以自己解析日期字符串,也可以使用外部库,例如dayjsmomentjs

一个简单的解析函数可能是这样的(假设格式是您在问题中提到的格式):

function getDateFromCustomFormat(dateString) {
  const dateFormatPattern = /^([0-9]{2})\/([0-9]{2})\/([0-9]{4}) ([0-9]{2}):([0-9]{2})$/

  const parts = dateString.match(dateFormatPattern)
  console.log(parts)

  const validFormatString = `${parts[3]}-${parts[2]}-${parts[1]} ${parts[4]}:${parts[5]}`
  new Date(validFormatString)
}

【讨论】:

  • 我相信 OP 知道格式不正确,并在询问 如何 可以更改它
  • @AnuragSrivastava 你是对的,我要改变我的答案。
  • 解析一个字符串以创建另一个字符串,然后由内置解析器解析不是一个好策略。从初始解析中,直接将值传递给 Date 构造函数。 ECMA-262 不支持 y-m-d h:m 格式的日期,因此解析取决于实现,并且至少一个当前实现将返回无效日期。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多