【问题标题】:Cannot parse date with jQuery UI无法使用 jQuery UI 解析日期
【发布时间】:2013-11-08 12:42:34
【问题描述】:

当我尝试使用 jQuery UI datepicker 的 parseDate 实用程序函数解析以下日期时,我得到一个 Invalid date 异常:

$.datepicker.parseDate("ddmy", "10982");

我正在使用 jQuery 1.8.0。有人可以帮我吗?

【问题讨论】:

    标签: jquery jquery-ui parsing date


    【解决方案1】:

    我做了一些测试,发现格式没问题,但值无法解析,

    所以我尝试了以下代码:

    $.datepicker.parseDate("ddmy", "100982");
    

    这意味着每种格式都需要 2 个字符长度(例如 2 位代表日,2 位代表月份,相同的年份)

    希望你能得到答案。

    【讨论】:

    • 是的,我知道,叹息100982 解析正常。但我宁愿允许用户也输入10982。如果 jQuery 的解析功能无法做到这一点,那就太可惜了。不过,我担心你是对的...... ;(
    【解决方案2】:

    您的指令给出了无效日期错误,您最好使用这种更详细的格式:

    $.datepicker.parseDate("ddmmyy", "10091982");
    

    参考。 http://api.jqueryui.com/datepicker/.

    【讨论】:

    • 我实际上是在尝试猜测用户输入的内容。 ddmy 是我试图猜测是否输入了有效日期的格式之一。根据 jQuery 文档 ddmy 应该解析 10982 好吧...
    • ddmy 似乎在 jQuery 1.8 中消失了,在我的情况下是 jQuery 1.10?
    • “消失”是什么意思?
    【解决方案3】:

    经过一番调查,似乎 jQuery 无法解析数天或数月的单个数字日期(尽管根据文档我仍然认为这应该是可能的)。

    我现在正在使用一种解决方法,在将用户输入的字符串输入到 jQuery 的解析函数之前,将其填充:

    var text = ...
    if (text.length === 4) { // dmyy
      text = "0" + text.substring(0, 1) + "0" + text.substring(1);
    } else if (text.length === 5) { // ddmyy 
      text = text.substring(0, 2) + "0" + text.substring(2);
    }
    $.datepicker.parseDate("ddmmyy", text);
    

    【讨论】:

      猜你喜欢
      • 2021-02-09
      • 2018-02-23
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      相关资源
      最近更新 更多