📜  检查日期时间字符串是否是 js 中的有效日期 - Javascript (1)

📅  最后修改于: 2023-12-03 15:10:54.227000             🧑  作者: Mango

检查日期时间字符串是否是 JS 中的有效日期 - JavaScript

当我们处理日期和时间数据时,往往需要确保数据的合法性。在 JavaScript 中通过以下方法可以检查一个日期时间字符串是否是有效的日期:

判断方法
1. isValidDate 函数

下面这个函数可以判断一个输入的字符串是否是有效的日期。

function isValidDate(dateString) {
  var tempDate = new Date(dateString);
  return !isNaN(tempDate.getTime());
}

这个函数会将输入的字符串转换为 Date 对象并判断是否是一个有效日期。如果是有效日期,则输出 true;否则输出 false

2. dateTimeRegExp 正则表达式

我们也可以通过正则表达式来判断一个日期时间字符串是否是有效的日期格式。

var dateTimeRegExp = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}$/;

这个正则表达式可以匹配标准的 ISO 日期时间格式。

dateTimeRegExp.test('2022-12-25T20:16:30'); // true
dateTimeRegExp.test('2022-12-25 20:16:30'); // true
dateTimeRegExp.test('2022-12-32 20:16:30'); // false

我们可以把这个正则表达式嵌入到一个函数中进行判断。

function isValidDate(dateString) {
  var dateTimeRegExp = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}$/;
  return dateTimeRegExp.test(dateString);
}
结论

以上是两种常用的判断输入日期时间字符串是否是有效日期的方法。

  • isValidDate 函数可以判断所有 Date 可以解析的字符串,但仍有一些不符合标准的字符串也能通过。比如输入 “2022-12-32”。
  • dateTimeRegExp 正则表达式只能判断符合 ISO 标准的字符串,但却能有效的防止一些不符合要求的日期字符串。

以上方法可以根据实际需求选用。