Подтвердить что ты не робот

Предупреждение об устаревании в момент js - Не в признанном формате ISO

Я получаю предупреждение, что значение, предоставленное моменту, не в признанном формате ISO. Я изменил свою переменную сегодня с помощью функции момента, но она все еще не работает.

Здесь ошибка предупреждения:

Предупреждение об устаревании: предоставленное значение не в признанном формате ISO. момент конструирования возвращается к js Date(), который не надежен во всех браузерах и версиях. Форматы дат, отличные от ISO, не рекомендуется и будут удалены в следующем основном выпуске. Пожалуйста, обратитесь к http://momentjs.com/guides/#/warnings/js-date/ для получения дополнительной информации. Аргументы: [0] _isAMomentObject: true, _isUTC: true, _useUTC: true, _l: undefined, _i: 2016-9-26 19:30, _f: undefined, _strict: undefined, _locale: [объект объекта]

 var entryDate = new Date();
 var currentDate = entryDate.getDate();

        function between(x,min,max) { 
            return x.valueOf() >= min.valueOf() && x < max.valueOf();
        };

        $("#custom1").change(function(){
            if ($("#custom1 :selected").val() == "AU" ) {
                var keyword = "";

                var aus1_s = moment.tz('2016-9-26 19:30', 'Australia/Sydney');              
                var aus2_s = moment.tz('2016-10-2 19:30', 'Australia/Sydney');              
                var aus3_s = moment.tz('2016-10-9 19:30', 'Australia/Sydney');                  
                var aus4_s = moment.tz('2016-10-16 19:30', 'Australia/Sydney');                 
                var aus5_s = moment.tz('2016-10-23 19:30', 'Australia/Sydney');
                var aus6_s = moment.tz('2016-10-30 19:30', 'Australia/Sydney');
                var aus6_e = moment.tz('2016-11-5 19:30', 'Australia/Sydney');
            } 

            else if ($("#custom1 :selected").val() == "NZ" ) {
                var aus1_s =  moment.tz('2016-9-28 20:30', 'Pacific/Auckland');
                var aus2_s =  moment.tz('2016-10-4 20:30', 'Pacific/Auckland');
                var aus3_s =  moment.tz('2016-10-11 20:30', 'Pacific/Auckland');
                var aus4_s =  moment.tz('2016-10-18 20:30', 'Pacific/Auckland');
                var aus5_s =  moment.tz('2016-10-25 20:30', 'Pacific/Auckland');
                var aus6_s =  moment.tz('2016-11-2 20:30', 'Pacific/Auckland');
                var aus6_e =  moment.tz('2016-11-9 20:30', 'Pacific/Auckland');
            }

            else {
                $("#entryEquals").val("");
                return false;
            }

           var today = moment();

            switch (true) {
                case between (today, aus1_s, aus2_s):
                keyword = "RElYT04=";
                break;

                case between (today, aus2_s, aus3_s):
                keyword = "QlJJREU=";
                break;

                case between (today, aus3_s, aus4_s):
                keyword = "U1lETkVZ";
                break;

                case between (today, aus4_s, aus5_s):
                keyword = "R1JPT00=";
                break;

                case between (today, aus5_s, aus6_s):
                keyword = "V0VERElORw==";
                break;

                case between (today, aus6_s, aus6_e):
                keyword = "VExD";
                break;

                default:
                $("#entryEquals").val("");
                break;
            }

        $("#entryEquals").val(keyword);

        });
4b9b3361

Ответ 1

Ознакомьтесь со всей их замечательной документацией!

Здесь они обсуждают Предупреждающее сообщение.

Строка + Формат

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

Для согласованного анализа результатов, отличного от строк ISO 8601, вы должны использовать String + Format.

moment("12-25-1995", "MM-DD-YYYY");

Строка + Форматы (несколько форматов)

Если у вас несколько форматов, проверьте их String + Formats (с символом 's').

Если вы не знаете точный формат входной строки, но знаете, что это может быть один из многих, вы можете использовать массив форматов.

moment("12-25-1995", ["MM-DD-YYYY", "YYYY-MM-DD"]);

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

Timezone

Оформление Анализ в зоне, эквивалентная документация для часовых поясов.

Конструктор moment.tz принимает все те же аргументы, что и конструктор момента, но использует последний аргумент как идентификатор часового пояса.

var b = moment.tz("May 12th 2014 8PM", "MMM Do YYYY hA", "America/Toronto");

ИЗМЕНИТЬ

//...
var dateFormat = "YYYY-M-D H:m"; //<-------- This part will get rid of the warning.
var aus1_s, aus2_s, aus3_s, aus4_s, aus5_s, aus6_s, aus6_e;
if ($("#custom1 :selected").val() == "AU" ) {
    var region = 'Australia/Sydney';

    aus1_s = moment.tz('2016-9-26 19:30', dateFormat, region);              
    aus2_s = moment.tz('2016-10-2 19:30', dateFormat, region);              
    aus3_s = moment.tz('2016-10-9 19:30', dateFormat, region);                  
    aus4_s = moment.tz('2016-10-16 19:30', dateFormat, region);                 
    aus5_s = moment.tz('2016-10-23 19:30', dateFormat, region);
    aus6_s = moment.tz('2016-10-30 19:30', dateFormat, region);
    aus6_e = moment.tz('2016-11-5 19:30', dateFormat, region);
} else if ($("#custom1 :selected").val() == "NZ" ) {
    var region = 'Pacific/Auckland';

    aus1_s =  moment.tz('2016-9-28 20:30', dateFormat, region);
    aus2_s =  moment.tz('2016-10-4 20:30', dateFormat, region);
    aus3_s =  moment.tz('2016-10-11 20:30', dateFormat, region);
    aus4_s =  moment.tz('2016-10-18 20:30', dateFormat, region);
    aus5_s =  moment.tz('2016-10-25 20:30', dateFormat, region);
    aus6_s =  moment.tz('2016-11-2 20:30', dateFormat, region);
    aus6_e =  moment.tz('2016-11-9 20:30', dateFormat, region);
}
//...

Ответ 2

Делать это работает для меня:

moment(new Date("27/04/2016")).format

Ответ 3

Я столкнулся с этой ошибкой, потому что я пытался передать дату из localStorage. Передача даты в новый объект Date, а затем вызов .toISOString() помогли мне:

const dateFromStorage = localStorage.getItem('someDate');
const date = new Date(dateFromStorage);
const momentDate = moment(date.toISOString());

Это подавляет любые предупреждения в консоли.

Ответ 4

использовать момент в вашей функции, как это

 moment(new Date(date)).format('MM/DD/YYYY')

Ответ 5

Этот ответ должен дать лучшее понимание этого предупреждения

Предупреждение об устаревании вызывается, когда вы используете момент для создания объекта времени, var today = moment(); ,

Если это предупреждение с вами, у меня есть более простой метод.

Не используйте объект date из js вместо использования moment. Например, используйте moment() чтобы получить текущую дату.

Или преобразовать объект даты js дату moment. Вы можете просто сделать это, указав формат вашего объекта даты js.

то есть, moment("js date", "js date format");

например:

moment("2014 04 25", "YYYY MM DD");

(НО ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ ЭТОТ МЕТОД ТОЛЬКО ДО УСТАРЕВШЕГО, это может быть амортизировано с moment в будущем)

Ответ 6

Разбор строки с moment.js.

const date = '1231231231231' //Example String date
const parsed = moment(+date);