【问题标题】:Jquery DateJs, is there validation for full date?Jquery DateJs,是否有完整日期的验证?
【发布时间】:2011-01-25 09:03:58
【问题描述】:

我刚刚了解了 date js 的强大功能,而且它很棒!!! 由于我是新手,我想知道对于不同类型的完整日期是否有任何形式的一般验证。 例如。

var d1 = Date.parse('2000-10-18, 10:06 AM');
alert(d1.toString('HH:mm'));

如果日期是 ('200-10-18, 10:06 AM'),它当然不喜欢它。

所以我的问题是,是否有任何快速的方法来验证完整日期,而不是一一验证。

谢谢。

【问题讨论】:

    标签: jquery validation datejs


    【解决方案1】:

    我在这里再次回答你的问题。

    要验证日期,您只需调用:

    var d1 = "200-10-18, 10:06 AM";
    Date.validateDay(d1); 
    

    它会告诉你日期是否有效。

    编辑

    或者,您可以这样做:

    var d = Date.parseExact("2008-03-08", "yyyy-MM-dd"); 
    if (d !== null) { 
         alert('Date = ' + d.toString('MMMM dd, yyyy')); 
    } 
    

    如果日期无效,使用 parseExact 将返回 null。

    【讨论】:

    • 什么是“有效日期”?从parse返回一个数字?
    • 使用 parseExact 时不返回 null(即符合您的条件并通过 datejs 验证)
    • 这不起作用,validateDay 的有效参数是数字:Date.validateDay ( Number day, Number fullYear, Number monthNumber ) : Boolean 请参阅code.google.com/p/datejs/wiki/APIDocumentation 我想知道这个答案是如何被标记为正确的。
    【解决方案2】:

    Date.parse 将一起解析日期和时间,如果这就是您的意思。但它不喜欢上午/下午,因此您需要将小时转换为 24 小时制。

    我建议,如果您知道它以 AM 或 PM 结尾,只需将其去掉,如果是 AM,您就可以了。如果是下午,则将 60 * 60 * 12 * 1000 加回到结果中以恢复 12 小时。 (秒 * 分钟 * 小时 * 毫秒)。

    再试一次:var d1 = Date.parse('2000-10-18, 10:06');

    此外,如果您想确保日期有效,如果输入无效,则 parse 将返回 NaN(不是数字)。但我相信,你几乎可以输入几千年内的任何日期/时间。只有当您尝试使用一些错误的语法解析日期(例如使用破折号作为一部分,而使用斜杠作为另一部分)或尝试 Date.parse("bananasandwitch") 时,它才会开始抛出 NaN。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      相关资源
      最近更新 更多