Предупреждение об устаревании в момент 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);
});
Ответы
Ответ 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);