Jquery 日期选择器从字符串中设置值

Jquery Datepicker Set Value From String

我正在从 cookie 中获取字符串日期,returns 喜欢这种格式 2017-11-16。我的日期选择器日期格式是 D, M d, yy 例如 Thu, Apr 27, 2017

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

https://jsfiddle.net/n6dokkty/

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

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

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

所以你必须像下面这样更改你的代码:

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

您需要在将日期设置为特定格式之前解析日期。
你可以在这里看到: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