Предупреждение об устаревании в момент js



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



вот предупреждение ошибка




предупреждение об устаревании: предоставленное значение не находится в распознанном формате ISO. конструкция moment возвращается к 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: [object Object]




 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);

});
437   5  

5 ответов:

проверьте всю их удивительную документацию!

здесь обсуждается Предупреждение.

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

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

для последовательного анализа результатов, отличных от строк ISO 8601, вы должны использовать Строка + Формат.

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

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

если у вас есть более одного формата, проверьте их Строка + Форматы (С 's').

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

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

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

часовой пояс

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

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

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

EDIT

//...
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);
}
//...

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

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

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

момент выполнения (новая дата ("27/04/2016")).формат....кажется, работает. Это работает для меня.

обновление

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

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

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

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

т. е. moment("js date", "js date format");

например:

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

(но вы можете использовать этот метод только до тех пор, пока он не будет амортизирован, это может быть амортизировано от moment в будущем)

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

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

Comments

    Ничего не найдено.