-2

我有一个使用这种格式的日期“20/02/2018 14:40:00 CET”我怎么能用 ISOString 格式转换它,我试过这个代码,但我没有任何结果!

function myFunction() {
    var d = '20/02/2018 14:40:00 CET';
    var n = d.toISOString();
    document.getElementById("demo").innerHTML = n;
}
4

2 回答 2

0

您需要拆分和重新组装,因为欧洲日期格式 (20/02) 无法解析

var d = '20/02/2018 14:40:00 CET',
  parts = d.split(" "),
  time = parts[1].split(":"),
  dParts = parts[0].split("/");

+time[0]--; // CET is +1 - for more https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations

var n = dParts[2] + "-" +
        dParts[1] + "-" +
        dParts[0] + "T" +
        time[0] + ":" +
        time[1] + ":" +
        time[2] + ".000Z";
console.log(n);

于 2018-02-13T09:28:45.843 回答
0

在尝试使用 toISOString 方法之前,您需要创建一个新的日期实例,但是正确的日期格式是 mm/dd/yyyy 所以试试这个:

var d = new Date("02/20/2018 14:40:00");
var n = d.toISOString();
console.log(n);

于 2018-02-13T09:21:48.253 回答