我从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运行之后
答案 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提供)