0

I have been post a question here. But the answer only work on Chrome, it does not work on IE(11).

How can I fix on IE?

Datetime from Net get by ajax: /Date(1556895600000+0900)/

const parse = str => {
    let [_, timestamp, offsetHours, offsetMinutes] = str.match(/(\d+)\+(\d\d)(\d\d)/).map(Number);

    let date = new Date(timestamp);
    date.setHours(date.getHours() + offsetHours);
    date.setMinutes(date.getMinutes() + offsetMinutes);
    return date;
}

console.log(
    parse("/Date(1556895600000+0900)/")
    .toJSON()
)
Hong Van Vit
  • 2,884
  • 3
  • 18
  • 43

1 Answers1

1

Simply transpile the ES6 code you have into ES5 that won't choke Internet Explorer

    function parse(str) {
        var result = str.match(/(\d+)\+(\d\d)(\d\d)/).map(Number),
            // _ = result[0], // never used, but included for completeness
            timestamp = result[1],
            offsetHours = result[2],
            offsetMinutes = result[3],
            date = new Date(timestamp);
        date.setHours(date.getHours() + offsetHours);
        date.setMinutes(date.getMinutes() + offsetMinutes);
        return date;
    }
    console.log(
        parse("/Date(1556895600000+0900)/")
        .toJSON()
    )
Jaromanda X
  • 53,868
  • 5
  • 73
  • 87