1. ホーム
  2. ジャバスクリプト

[解決済み】Moment.jsで非推奨の警告 - 認識されたISOフォーマットではない

2022-04-05 08:36:29

質問

momentに提供された値が認識されたISOフォーマットでないという警告が表示されます。今日、moment関数で変数を変更したのですが、まだうまくいきません。

これがその警告エラーです。

Deprecation warning: value provided is not in the recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. 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.NET[0]。[オブジェクトオブジェクト]。

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 以外の文字列を解析して一貫した結果を得るには、以下のようにします。 文字列+書式 .

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

文字列+フォーマット(複数フォーマット)

複数のフォーマットがある場合は、同社の 文字列+書式 (s)がついています。

入力文字列の正確な形式はわからないが、多くの形式のうちのひとつであることがわかる場合、形式の配列を使用することができます。

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

より具体的な内容については、ドキュメントをご確認ください。

タイムゾーン

チェックアウト ゾーンでのパース タイムゾーンに相当するドキュメントをご覧ください。

<ブロッククオート

moment.tz コンストラクタは moment コンストラクタと同じ引数を取りますが、最後の引数をタイムゾーン識別子として使用します。

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