Преобразование даты mysql в дату js работает в chrome, но не в сафари

Я использую канал в angular2 для преобразования даты mysql в формат даты js, вот мой код:

export class DateToIso {
    transform(value) {
        let date = new Date(value);
        let str = (date.getMonth() + 1) + '.' + date.getDate() + '.' +  date.getFullYear()
        return str;
    }
}

В HTML я использую {{ post[2] | dateToIso}}, чтобы показать конвертированную дату. В Chrome я получаю правильное время и дату, но не в сафари. Он возвращает NaN.NaN.NaN.


person A. Ilazi    schedule 28.05.2016    source источник
comment
Вот как я сделал это из строкового формата. stackoverflow.com/a/42008399/4354210   -  person Michael Coyne    schedule 02.02.2017


Ответы (2)


У меня была аналогичная проблема с валютной трубой, и это была проблема интернационализации. Я написал это здесь http://blogs.msmvps.com/deborahk/angular-2-getting-started-problem-solver/

  1. Установите международный пакет: npm install [email protected] – сохранить

  2. Включите в index.html следующее:

(Я использую сенсорное устройство, и вставленный код не работает. См. ссылку)

person DeborahK    schedule 28.05.2016

Я попробовал @DeborahK, но это не сработало, поэтому я просто взял дату Mysql «String», сделал из нее подстроки, переставил подстроки в новую строку и вернул ее.

export class DateToIso {
    transform(value, args) {
        let month = value.substr(5,2);
        let day = value.substr(8,2);
        let timeThen = value.substr(11,5);
        let newValue = day + "." + month + " um " + timeThen;
        return newValue;
    }
}

Я считаю, что это не лучшее решение, но оно работает. Надеюсь скоро получить лучшие решения.

person A. Ilazi    schedule 28.05.2016