【问题标题】:jquery ui datepicker setdate only works on google chromejquery ui datepicker setdate 仅适用于谷歌浏览器
【发布时间】:2016-02-24 22:37:24
【问题描述】:

我的代码:

<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>

JS 小提琴:https://jsfiddle.net/g0uyok13/

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

有什么想法吗?

【问题讨论】:

  • 第 5 行不应该是$('#testdate').datepicker('option', 'dateFormat', 'yyyy-mm-dd');吗?

标签: javascript jquery jquery-ui datepicker jquery-ui-datepicker


【解决方案1】:

问题在于时间12:00:00。不要忘记它是您正在使用的日期选择器。时间与它无关。

现在它在 chrome 中工作的原因,我猜它是浏览器的内部实现。 Mozilla 会丢弃无效的日期格式,而 chrome 会尝试将其删除......(这纯粹是我的假设,我不基于任何文档......但是)

更新

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

$('#testdate').datepicker();
$('#testdate').datepicker('option', 'dateFormat', 'yy-mm-dd');
$("#testdate").datepicker('setDate', new Date('2017-01-01T12:00:00Z'));

(适用于两种浏览器)

您也可以查看new Date() works differently in Chrome and Firefox 了解更多信息

【讨论】:

    【解决方案2】:

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

    $("#testdate").datepicker('setDate', new Date('2017-01-01T12:00:00'));
    

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

    这是来自 MDN 的摘录

    日期字符串

    代表日期的字符串值。字符串应该在 Date.parse() 方法识别的格式(符合 IETF 的 RFC 2822 时间戳和 ISO8601 版本)。

    您可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date查看更多信息

    【讨论】:

      【解决方案3】:

      您的日期在 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 中使用。我从这个 stackoverflow 帖子中获取了日期格式:link

      在 Firefox 中试试这个:

      console.log(new Date('2017-01-01 12:00:00'));
      

      检查你的控制台它应该显示:

      无效日期

      working fiddle

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-17
        • 1970-01-01
        • 2012-09-19
        • 2018-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多