验证javascript日期

mus*_*rge 4 javascript date

有没有快速的方法来验证此格式的日期/时间是否有效?我宁愿不用子串将其分解并尽可能重建它

"YYYY-MM-DD HH:MM:SS"

mae*_*ics 6

您可以将日期字符串解析为ISO字符串(通过将空格转换为"T"并附加Zulu时区,例如" 2011-08-16T12:34:56Z"),然后将结果日期的ISO字符串与原始ISO字符串进行比较.

function isValidDateString(s) {
  try {
    var isoStr = (""+s).replace(/ /,'T') + "Z"
      , newStr = new Date(isoStr).toISOString();
    return isoStr.slice(0,19) == newStr.slice(0,19);
  } catch (e) {
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

这样,如果日期字符串的格式无效,那么字符串"Invalid Date"将不等于原始字符串,如果它要滚动(例如,如果当天该日期无效)那么解析日期的字符串值将不会等于原始字符串.

[编辑]

请注意时区修复所需的示例代码的更改.