Moment.js不喜欢我的时间格式

时间:2017-03-11 16:54:05

标签: javascript jquery cfc

我从JSON返回一个SQL日期,它看起来像这样: ts'2017-03-11 00:00:00'

当我尝试应用moment.js格式时,我收到此错误:

  

弃用警告:提供的值不是公认的ISO格式。时刻构造回落到js Date(),这不是   所有浏览器和版本都可靠。非ISO日期格式是   气馁,将在即将发布的主要版本中删除。

我该如何解决这个问题?

这是我的代码:

<script>
  function PopulateReviewTimeStamps() {
    // Populate timestamp data div
    console.log("Review timestamp CFC called");
    $.ajax({
      url: 'cfcs/reviewdata.cfc?method=getTimeStampData&returnformat=json',
      data: {
        ticket_id: $("##ticket_id").attr("Value")
      },
      success: function(response) {
        console.log("success function called");
        var value = response;
        var datetime = moment(value);
        var date = datetime.format('MMMM Do, YYYY');
        var time = datetime.format('h:mma');


        // append new option to list
        console.log("about to change div" + value);
        $('##sentDate').html(date + " at " + time);


        // PopulateOdometers();
      },
      error: function(msg) {
        console.log("Something went wrong with populating stats function");
      }
    })
  }
</script>

更新: 我从AJAX请求改为返回类型“date”。我不再收到无效日期,但我的日期显示为:2000年11月5日上午12:00。

控制台日志如下: Orignal日期值:2017年3月11日00:00:00 -0500&lt; -----在moment.js运行之前

即将更改div为:2000年11月5日12:00&lt; -----这是在moment.js运行之后

1 个答案:

答案 0 :(得分:2)

此: -

var datetime = moment(value);

需要: -

var datetime = moment(value,'MM-DD-YYYY h:m'); // pass desired date-time format

参考: - https://momentjs.com/docs/#/parsing/string-format/(由Pointy提供)