Как разобрать чешскую временную метку в строгом режиме с MomentJS - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь использовать MomentJs с таблицами данных.Мне это нужно, потому что сортировка не работает для меня должным образом.(По умолчанию используется формат даты США)

Я проверил документацию для таблиц данных, которые ссылаются на документы MomentJS.Они предлагают использовать $.fn.dataTable.moment( format, locale )

Это пример моей даты и времени 07.02.2019 11:40:12.В соответствии с документацией я создал свое форматное выражение.

Поскольку он не работал, я также попытался импортировать файл локали, который был отмечен как опция в документах с данными.

локаль (необязательно) - Moment.js имеет обширную поддержку интернационализации.Эта опция может быть дополнительно использована для указания локали.

Тогда я попытался: $.fn.dataTable.moment("DD.MM.YYYY HH:mm:ss", 'cs');

Снова без успеха.Итак, я открыл datime-moment.js и проверил реализацию momentJ.

Я обнаружил, что всегда возвращается с нулевым повтором, потому что isValid() был ложным.

Поэтому я отключил строгий режим и все работаетотлично.

// Add type detection
types.detect.unshift( function ( d ) {
    if ( d ) {
        // Strip HTML tags and newline characters if possible
        if ( d.replace ) {
            d = d.replace(/(<.*?>)|(\r?\n|\r)/g, '');
        }

        // Strip out surrounding white space
        d = $.trim( d );
    }

    // Null and empty values are acceptable
    if ( d === '' || d === null ) {
        return 'moment-'+format;
    }

    return moment( d, format, locale, false ).isValid() ?
        'moment-'+format :
        null;
} );

Я нашел решение, но я думаю, что должен быть способ использования MomentJs с включенным строгим режимом.Я ожидаю, что "DD.MM.YYYY HH:mm:ss" будет соответствовать 07.02.2019 11:40:12.

Это моя вина или это невозможно в MomentJs?Спасибо за каждый совет.

...