在 Internet Explorer 中无法将 UTC 日期转换为本地日期

In Internet Explorer not able to convert UTC date to local date

这是我从后端 "2017-05-23T18:30:00"

收到的日期

这在 Chrome 中工作正常:

但在 Internet Explorer 上:

当我进入 Chrome 时,如何在 Internet Explorer 中从 UTC 日期获取本地日期时间?

你可以使用moment.utc to parse your input cross browser. Then you can use format() to display your moment object. If you need to convert moment object to JavaScript date you can use toDate()方法。

如果您想将您的时刻转换为当地时间,请使用 local()

有关其他信息,请参阅 Local vs UTC vs Offset

这是一个活生生的例子:

var input = '2017-05-23T18:30:00';
var m = moment.utc(input);
console.log(m.format());
console.log(m.toDate().toString());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

IE浏览器会采用'mm-dd-yy'的格式。如果您以 'yy-mm-dd' 的格式给出,则会导致无效日期。

使用以下函数将 UTC 转换为 LocalDate。

function convertUTCDateToLocalDate(utcDate) {
    var formattedDate = utcDate.getMonth()+'-'+utcDate.getDate()+'-'+utcDate.getFullYear();
    var hours = utcDate.getHours();
        var minutes = utcDate.getMinutes();
        var seconds = utcDate.getSeconds()
        var newDate = new Date(formattedDate + ' ' + hours + ':' + minutes+":"+seconds+" UTC");
    return newDate;   
}
var localDate = convertUTCDateToLocalDate(yourUTCDate);