【问题标题】:Jquery Datepicker Set Value From StringJquery Datepicker从字符串中设置值
【发布时间】:2017-04-11 00:07:09
【问题描述】:

我从 cookie 中获取了一个字符串日期,它以这种格式返回 2017-11-16。我的日期选择器日期格式是D, M d, yy 例如Thu, Apr 27, 2017

如果我只是将它设置为$("#m_checkin").datepicker().datepicker("setDate", "2017-11-16");,日期选择器函数将停止工作,它只是将2017-11-16 设置为输入值。如何将我的日期格式化为我的 datepicker dateformat?

https://jsfiddle.net/n6dokkty/

【问题讨论】:

    标签: javascript jquery jquery-ui-datepicker


    【解决方案1】:

    您需要在将日期设置为特定格式之前解析日期。
    你可以在这里看到:https://jsfiddle.net/r1nm5h7k/

    $( "#datepicker" ).datepicker({dateFormat: "DD, d MM, yy"});
    $( "#datepicker" ).datepicker("setDate", $.datepicker.parseDate( "yy-mm-dd", "2017-11-16" ));
    

    参考:https://api.jqueryui.com/datepicker/#utility-formatDate

    【讨论】:

    • 我按照您的方式进行操作,但此时,功能在设置日期(最后一行)后停止工作。我在我的问题中添加了 jsfiddle 链接,以便您查看。 jsfiddle.net/n6dokkty
    • 您需要包含 jquery 和 jquery-ui 才能使其工作。检查这个 - jsfiddle.net/arvinddhakad/r1nm5h7k/1
    【解决方案2】:

    您可以查看momentjs,这是一个 javascript 日期/时间库。有了它,您可以轻松地在不同格式的日期之间进行转换。

    string newDate = moment(currentDate, currentFormatString).format(newFormatString)

    【讨论】:

      【解决方案3】:

      您必须使用Date 对象而不是字符串来setDate(以避免像您目前面临的日期格式问题)。

      所以你必须改变你的代码如下:

      $("#m_checkin").datepicker().datepicker("setDate", new Date(2017,11,16));
      

      【讨论】:

      • 欢迎来到 SO!为了将来参考,您必须在任何代码行之前放置一个空行,以便格式解析器提取它们。
      猜你喜欢
      • 2020-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      相关资源
      最近更新 更多