当前位置: 首页 > 面试题库 >

JavaScript如何验证日期?

邬飞捷
2023-03-14
问题内容

我正在尝试测试以确保某个日期有效(如果有人输入2/30/2011则应该是错误的)。

我如何在任何日期都可以这样做?


问题答案:

验证日期字符串的一种简单方法是将其转换为日期对象并进行测试,例如

// Expect input as d/m/y

function isValidDate(s) {

  var bits = s.split('/');

  var d = new Date(bits[2], bits[1] - 1, bits[0]);

  return d && (d.getMonth() + 1) == bits[1];

}



['0/10/2017','29/2/2016','01/02'].forEach(function(s) {

  console.log(s + ' : ' + isValidDate(s))

})

以这种方式测试日期时,仅需要测试月份,因为如果日期超出范围,则月份会更改。如果月份超出范围,则相同。任何年份均有效。

您还可以测试日期字符串的位:

function isValidDate2(s) {

  var bits = s.split('/');

  var y = bits[2],

    m = bits[1],

    d = bits[0];

  // Assume not leap year by default (note zero index for Jan)

  var daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];



  // If evenly divisible by 4 and not evenly divisible by 100,

  // or is evenly divisible by 400, then a leap year

  if ((!(y % 4) && y % 100) || !(y % 400)) {

    daysInMonth[1] = 29;

  }

  return !(/\D/.test(String(d))) && d > 0 && d <= daysInMonth[--m]

}



['0/10/2017','29/2/2016','01/02'].forEach(function(s) {

  console.log(s + ' : ' + isValidDate2(s))

})


 类似资料:
  • 我有数据帧,它有几个具有日期数据的列。我想对列应用验证,如果日期错误,我想用错误消息列更新该数据帧。我尝试过但工作不正常。我的示例数据帧数据。 我尝试了以下代码。 预期数据帧

  • 问题内容: 我想让用户输入日期,例如: 然后确保输入的是有效日期。我不太在乎日期格式。 感谢您的任何投入。 问题答案: 您可以使用模块的功能: 请注意,在Python 2.x中,您需要使用而不是。

  • 我想使用jQuery验证插件验证输入(出生日期),但它必须是“dd/mm/yyyy”格式,并且在年份日期超过2002年时不进行验证。 因此,该日期在格式为“dd/mm/yyyy”且年份超过“2002”时有效

  • 问题内容: 我试图建立一个PHP日期验证(MM / DD / YYYY),但我遇到了问题。这是我得到的样本: 问题答案: 您可以使用checkdate。例如,如下所示: 一种更偏执的方法,不会盲目相信输入内容:

  • 我正在尝试设置php日期验证(MM/DD/YYYY),但我遇到了问题。以下是我得到的一个示例: