【问题标题】:Momentjs Deprecation Warning using Format使用格式的 Momentjs 弃用警告
【发布时间】:2015-12-30 00:39:48
【问题描述】:

我想知道上面提到的不推荐使用的方法对我的 momentJS 方法意味着什么,以及我可以进行哪些更改来正确格式化我的值。我有格式为2015-12-11 00:00:00 的日期值。我正在尝试将它们转换为正确的字段格式YYYY-MM-DD。下面的 jQuery 允许我以正确的格式转换日期值而没有任何问题,但我在控制台日志中收到以下警告。任何想法这意味着什么?

jQuery:

<script type="text/javascript">
    $(document).ready(function() {
        $("#test-form-date").val( moment("{{test.testDate}}").format('YYYY-MM-DD') );
        $("#data-date-start").val( moment("{{test.testDateStart}}").format('YYYY-MM-DD') );
        $("#data-date-end").val( moment("{{test.testDateEnd}}").format('YYYY-MM-DD') );
    });
    </script>

这是正在修改的表格:

<div class="test-form-header">
    <input type="date" name="testDate" id="test-form-date" value="{{test.testDate}}">
</div>
</br>
<div class="form-inline date-start">
    <label for="data-start-range">Data Date Start:</label>
    <input type="date" id="data-date-start" name="dataDateStart" value="{{test.dataDateStart}}">
</div>
<div class="form-inline date-end">
    <label for="data-end-range">Data Date End:</label>
    <input type="date" id="data-date-end" name="dataDateEnd" value="{{test.dataDateEnd}}">
</div>

这是控制台日志的警告:

指定的值“Sun Dec 27 2015 19:00:00 GMT-0500 (EST)”不 符合要求的格式,“yyyy-MM-dd”。 10:60 指定 值“2015 年 9 月 30 日星期三 20:00:00 GMT-0400 (EDT)”不符合 所需的格式,“yyyy-MM-dd”。 10:64 指定值“Thu Dec 03 2015 19:00:00 GMT-0500 (EST)" 不符合要求 格式,“yyyy-MM-dd”。 moment.js:737 弃用警告:moment 构造回退到 js 日期。这是不鼓励的,将是 在即将发布的主要版本中删除。请参阅 https://github.com/moment/moment/issues/1407 了解更多信息。

错误

at Function.createFromInputFallback (http://momentjs.com/downloads/moment.js:746:36)
at configFromString (http://momentjs.com/downloads/moment.js:826:32)
at configFromInput (http://momentjs.com/downloads/moment.js:1353:13)
at prepareConfig (http://momentjs.com/downloads/moment.js:1340:13)
at createFromConfig (http://momentjs.com/downloads/moment.js:1307:44)
at createLocalOrUTC (http://momentjs.com/downloads/moment.js:1385:16)
at local__createLocal (http://momentjs.com/downloads/moment.js:1389:16)
at utils_hooks__hooks (http://momentjs.com/downloads/moment.js:16:29)
at HTMLDocument.<anonymous> (http://localhost:3000/app/edit/10:87:38)
at j

(https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js:2:26925)

【问题讨论】:

    标签: jquery date momentjs


    【解决方案1】:

    将此添加到您的代码中。

    moment.createFromInputFallback = function(config) {
      // unreliable string magic, or
      config._d = new Date(config._i);
    };
    $("#test-form-date").val( moment("{{test.testDate}}").format('YYYY-MM-DD') );
    

    发生错误是因为,

    不推荐使用非 iso 字符串的矩构造。

    更多详情请阅读Be careful when falling back to Date constructor

    【讨论】:

      猜你喜欢
      • 2018-03-31
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多