Moment.js에서의 권장 해제 경고 - 인식된 ISO 형식이 아닙니다.
모멘트에 제공된 값이 인식된 ISO 형식이 아니라는 경고가 표시됩니다.오늘 모멘트 함수로 변수를 변경했는데도 작동하지 않습니다.
다음은 경고 오류입니다.
권장 해제 경고: 제공된 값이 인식된 ISO 형식이 아닙니다. 모멘트 구성이 js Date()로 폴백되며, 이는 모든 브라우저와 버전에서 신뢰할 수 있는 것은 아닙니다.ISO 이외의 날짜 형식은 권장되지 않으며 향후 메이저릴리즈에서는 삭제될 예정입니다.상세한 것에 대하여는, http://momentjs.com/guides/#/filename/filename-date/ 를 참조해 주세요.인수: [0] _isAMoment Object: 참, _isUTC: true, _useUTC: true, _l: 정의되지 않음, _i: 2016-9-26 19:30, _f: 정의되지 않음, _strict: 정의되지 않음, _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);
});
그들의 멋진 문서들을 모두 확인해 보세요!
여기서 경고 메시지에 대해 논의합니다.
문자열 + 형식
경고: 브라우저의 문자열 구문 분석 지원에 일관성이 없습니다.어떤 형식을 지원해야 하는지에 대한 지정이 없기 때문에 일부 브라우저에서 작동하는 것은 다른 브라우저에서 작동하지 않습니다.
ISO 8601 문자열 이외의 일관된 결과를 구문 분석하려면 String + Format을 사용해야 합니다.
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");
편집
//...
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);
}
//...
이 조작은, 이쪽에서 유효합니다.
moment(new Date("27/04/2016")).format
모멘트를 이렇게 사용하다
moment(new Date(date)).format('MM/DD/YYYY')
이 에러는, 다음의 날짜를 전달하려고 하고 있었기 때문에 발생했습니다.localStorage
를 으로 넘기다Date
.toIString()을 호출하면 다음과 같은 트릭을 얻을 수 있습니다.
const dateFromStorage = localStorage.getItem('someDate');
const date = new Date(dateFromStorage);
const momentDate = moment(date.toISOString());
이로 인해 콘솔의 경고가 모두 억제되었습니다.
사용할 수 있습니다.
moment(date,"currentFormat").format("requiredFormat");
이것은 날짜가 ISO 형식이 아닌 경우에 사용해야 합니다.현재 포맷을 알 수 있기 때문입니다.
이 답변은 이 경고를 더 잘 이해하기 위한 것입니다.
사용 중지 경고는 모멘트를 사용하여 시간 개체를 생성할 때 발생합니다.var today = moment();
.
이 경고가 괜찮으시다면 더 간단한 방법이 있습니다.
사용하지 않다date
에서 이의를 제기하다.js
사용하다moment
대신.예를 들어 사용moment()
현재 날짜를 가져옵니다.
또는 변환합니다.js
날짜 이의moment
날짜만 지정하면 됩니다.js
date 오브젝트
즉,moment("js date", "js date format");
예:
moment("2014 04 25", "YYYY MM DD");
(단, 이 방법은 감가상각될 때까지만 사용할 수 있습니다.이 방법은 감가상각될 수 있습니다.moment
장래에)
moment.js가 있는 문자열을 해석하고 있습니다.
const date = '1231231231231' //Example String date
const parsed = moment(+date);
다음 행을 코드에 추가하여 경고를 억제합니다.
const moment = require('moment');
moment.suppressDeprecationWarnings = true;
간단한 답변:
let date = Date.now();
let timeNow = moment(new Date(date)).format('YYYY-MM-DD');
제 경우 이 오류는
moment('2021-07-1')
올바른 방법은
moment('2021-07-01')
월/일이 다음보다 작을 때10
, 를 추가해야 합니다.0
앞에.
모멘트를 사용하여 날짜 값을 원하는 형식으로 변환했습니다.데이터베이스의 날짜 값은 다음과 같습니다.
2021-06-07T22:00:00.000Z
제가 한 일은 다음과 같습니다.
dateNeeded = moment(dateNeeded , moment.ISO_8601).format('YYYY-MM-DD');
참조처: https://momentjs.com/docs/ #/filename/string-format/
이것은 기한이 좀 지났을지도 몰라요.문제는 데이터베이스에서 포맷이 전혀 전달되지 않았다는 것입니다(내 문제는 NULL이었습니다).
의사는 다음과 같이 말합니다.This deprecation warning is thrown when no known format is found for a date passed into the string constructor. To work around this issue, specify a format for the string being passed to moment().
유사한 문제가 발생하여 다음 해결방법으로 해결합니다.제 날짜 형식은 '2020년 12월 11일 금요일 05:00:00 GMT+0500(파키스탄 표준시)'입니다.
let currentDate = moment(new Date('Fri Dec 11 2020 05:00:00 GMT+0500 (Pakistan Standard Time)').format('DD-MM-YYYY'); // 'Fri Dec 11 2020 05:00:00 GMT+0500 (Pakistan Standard Time)'
let output=(moment(currentDate).isSameOrAfter('07-12-2020'));
const dateFormat = 'MM-DD-YYYY';
const currentDateStringType = moment(new Date()).format(dateFormat);
const currentDate = moment(new Date() ,dateFormat); // use this
moment.suppressDecrecationWarnings = true;
var nowTime = moment();
var nowTimeFormate = moment(nowTime).format("HH:mm");
console.log('from now time',nowTimeFormate)
이 구문은 경고를 피하는 데 도움이 됩니다.
let m = moment(new Date(dateObjectVariable));
나는 다른 평가된 답들과 비슷한 방법을 따랐다.".format"은 필요없었습니다.이 메서드는 모멘트(new Date(dateObjectVariable) 생성자에서 모멘트 객체를 생성하여 내 함수에 맞게 조작하기 위해 사용되었습니다.
같은 문제가 발생하고 있었습니다.아래 스니펫을 사용했더니 효과가 있었습니다.
moment(date, moment.ISO_8601)
감사해요.
언급URL : https://stackoverflow.com/questions/39969570/deprecation-warning-in-moment-js-not-in-a-recognized-iso-format
'programing' 카테고리의 다른 글
Larabel Mix에 Font Awesome을 설치하는 방법 (0) | 2022.12.20 |
---|---|
JavaScript 파일을 HTML 파일에 링크하려면 어떻게 해야 합니까? (0) | 2022.12.20 |
다른 테이블 쿼리에 대해 MySQL이 매우 느립니다. (0) | 2022.12.10 |
Galera 첫 번째 노드가 시작되지 않습니다. (0) | 2022.12.10 |
PHP에서 MySQL *.sql 파일 실행 (0) | 2022.12.10 |