【问题标题】:How to check the text is a valid date with specfic date format in javascript? [duplicate]如何在javascript中检查文本是否是具有特定日期格式的有效日期? [复制]
【发布时间】:2016-09-27 07:06:38
【问题描述】:

我已经阅读了很多网站进行日期检查。但是,其中一些是无用的,因为我想将日期格式设置为dd/MM/yyyy

var result = new Date(input);
if (result == 'Invalid Date') {
    return false;

对于上面的代码,

  • 如果我输入 '60/09/02016' 仍然有效。
  • 它返回 MM/dd/yyyy

【问题讨论】:

  • 我试过 new Date(''60/09/02016'') 也无效
  • 你可以简单地使用moment.js。它将允许您以任何您想要的格式检查有效日期
  • 您需要在 if 条件下调用 result.toString() 。如果日期无效,它将返回“无效日期”
  • @user3273700 如果我输入 Date(''60/09/02016''),它会返回“2020-12-05T16:00:00.000Z”
  • @ADyson——当然,通用解析器需要更多的工作(也是一个很好的练习)。有很多小型库可以很好地解析,所以重新发明那个轮子没有意义。但对于单一格式,这很容易。在现代浏览器中,可以使用new Date(s.split(/\D/).reverse().join('-')) != 'Invalid Date' 验证 OP 格式。但我不建议实际这样做(因为它依赖于不可靠的解析,并且可能会混淆 Date 对象到字符串原语的隐式转换)。 ;-)

标签: javascript date


【解决方案1】:

如果您能够在代码中使用 moment.js (http://www.momentjs.com) 库,那就非常简单了:

var input = '60/09/2016';
var dt = moment(input,'DD/MM/YYYY');
alert(dt.isValid()); //returns true or false depending on whether the date is valid and in the correct format

【讨论】:

    【解决方案2】:

    您可以使用 Moment 来验证日期。按照下面的代码可能对你有用!

         var moment = require('moment')
         var m = moment('2015-11-32', 'YYYY-MM-DD');
         console.log(m.isValid()) // false
    

    浏览器可以使用cdn或者从moment site下载js

       <script src="moment.js"></script>
       <script>
         var m = moment('2015-11-32', 'YYYY-MM-DD');
         console.log(m.isValid()) // false
      </script>
    

    参考http://momentjs.com

    JS_Linkhttp://momentjs.com/downloads/moment.js

    下载 moment.js 并在您的项目中引用。

    【讨论】:

    • "require" 仅适用于 nodeJS,不适用于浏览器。 OP没有指定任何一种方式。而且日期格式也不是 OP 要求的格式。否则示例没问题。
    • 您可以在浏览器中使用相同的,按照更新的答案
    • 好的,这更全面 - 谢谢
    • 如果有任何困难,它工作或不让我知道它对你有帮助
    • 不,没关系,我知道如何使用它(请参阅下面的答案)只是想为 OP 澄清节点和浏览器对库的引用之间的区别
    【解决方案3】:

    然后使用datepicker 并限制用户在其上输入任何字符。

    【讨论】:

    • 这不是答案,只是评论。
    • 抱歉,我暂时无法发表评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2013-01-01
    • 2017-02-28
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多