Javascript jquery ui datepicker setdate仅适用于google chrome

Javascript jquery ui datepicker setdate仅适用于google chrome,javascript,jquery,jquery-ui,datepicker,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui,Datepicker,Jquery Ui Datepicker,我的代码: <input type="text" id="testdate" name="testdate" value="2017-01-01" /> <script> $('#testdate').datepicker(); $('#testdate').datepicker('option', 'dateFormat', 'yy-mm-dd'); $("#testdate").datepicker('setDate', new Date('2017-01-01 1

我的代码:

<input type="text" id="testdate" name="testdate" value="2017-01-01" />

<script>
$('#testdate').datepicker();
$('#testdate').datepicker('option', 'dateFormat', 'yy-mm-dd');
$("#testdate").datepicker('setDate', new Date('2017-01-01 12:00:00'));
</script>

$('#testdate').datepicker();
$('#testdate')。日期选择器('option','dateFormat','yy-mm-dd');
$(“#testdate”).datepicker('setDate',新日期('2017-01-01 12:00:00');
JS小提琴:

谷歌Chrome在文本输入区显示2017-01-01。在Firefox中显示今天的日期(atm 2016-02-24)。我希望它在Firefox中的工作方式与在Google Chrome中的工作方式相同


有什么想法吗?

问题在于时间
12:00:00
。别忘了你正在使用的是一个日期选择器。时间与此无关

现在它在chrome中工作的原因,我猜是浏览器的内部实现。Mozilla丢弃了无效的日期格式,而chrome尝试并削减了它…(这纯粹是我的假设,我还没有基于任何文档…)

更新

是的,我的假设是正确的。不支持您输入的日期格式,而chrome更灵活,并支持该格式。对于通用日期和时间,您可以使用以下代码:

$('#testdate').datepicker();
$('#testdate').datepicker('option', 'dateFormat', 'yy-mm-dd');
$("#testdate").datepicker('setDate', new Date('2017-01-01T12:00:00Z'));
(适用于两种浏览器)


您还可以查看有关此的详细信息,您的日期在firefox中无效…请尝试以下操作:

$('#testdate').datepicker();
$('#testdate').datepicker('option', 'dateFormat', 'yy-mm-dd');
$("#testdate").datepicker('setDate', new Date(2017, 00, 01, 12, 0, 0, 0));
注意:月份以0为基础,因此0是1月1日是2月,等等

这在firefox和chrome中应该是可行的。我从这篇文章中获取了日期格式:

在firefox中尝试以下操作:

console.log(new Date('2017-01-01 12:00:00'));
检查您的控制台,它应该显示:

无效日期


您可以尝试将日期字符串的格式更改为以下格式:

Firefox不知道如何用空格解析日期

以下是MDN的摘录

日期字符串

表示日期的字符串值。该字符串应位于 Date.parse()方法识别的格式(符合IETF的RFC 2822 时间戳,也是ISO8601的一个版本)

您可以在

中看到更多信息,不应将第5行读为$('testdate')。日期选择器('option','dateFormat','yyyy-mm-dd')
$("#testdate").datepicker('setDate', new Date('2017-01-01T12:00:00'));