Предупреждение об устаревании в момент 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);
});
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());это подавило любые предупреждения в консоли.
обновление
предупреждение об устаревании возникает, когда вы используете момент для создания объекта времени
var today = moment();.если это предупреждение вас устраивает, то у меня есть более простой метод.
не используйте
dateобъектjsиспользовать . Например, используйтеmoment()чтобы получить текущую дату.или преобразования
jsдата объектmomentдата. Вы можете просто сделать это, указав формат вашегоjsобъект Date.т. е.
moment("js date", "js date format");например:
moment("2014 04 25", "YYYY MM DD");(но вы можете использовать этот метод только до тех пор, пока он не будет амортизирован, это может быть амортизировано от
momentв будущем)
Comments