মোমেন্ট.জেএসে অবমূল্যায়ন সতর্কতা - কোনও স্বীকৃত আইএসও ফর্ম্যাটে নয়


176

আমি একটি সতর্কতা পেয়ে যাচ্ছি যে মুহুর্তের জন্য সরবরাহ করা মান কোনও স্বীকৃত আইএসও ফর্ম্যাটে নয়। আমি আজ আমার পরিবর্তনশীলটিকে মুহুর্তের ফাংশন দিয়ে পরিবর্তন করেছি এবং এখনও এটি কার্যকর হয় না।

সতর্কতা ত্রুটি এখানে:

অবচয় হুঁশিয়ারি: প্রদত্ত মান কোনও স্বীকৃত আইএসও ফর্ম্যাটে নেই। মুহূর্তের নির্মাণটি জেএস ডেটে ফিরে আসে (), যা সমস্ত ব্রাউজার এবং সংস্করণে নির্ভরযোগ্য নয়। নন আইএসও তারিখের ফর্ম্যাটগুলি নিরুৎসাহিত করা হবে এবং আসন্ন একটি বড় রিলিজে তা সরানো হবে। আরও তথ্যের জন্য দয়া করে http://momentjs.com/guides/#/warnings/js-date/ দেখুন। আর্গুমেন্ট: [0] _আইসামেন্ট অবজেক্ট: সত্য, _আইএসইটিসি: সত্য, _ ইউএসটিসি: সত্য, _ ল: অপরিজ্ঞাপিত, _ আই: 2016-9-26 19:30, _ফ: অপরিজ্ঞাত, _স্তরক: অপরিজ্ঞাত, _ লোকেল: [অবজেক্ট অবজেক্ট]

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
আমি সাবধানবাণী বোঝায় মনে '2016-9-26 19:30'এবং এই ধরনের একটি স্বীকৃত ISO ফর্ম্যাটে হচ্ছে না
Jaromanda এক্স

বিন্যাসে ত্রুটিটি কী? সুতরাং আমি 0 যোগ করতে হবে?
জেমাই

1
আপনি ডকুমেন্টেশনmoment.tz('2016-9-28 20:30', 'YYYY-M-D H:mm', 'Pacific/Auckland'); অনুযায়ী করতে পারেন ... এটি 1 বা 2 ডিজিটের মাস এবং দিনগুলি 24 ঘন্টা বিন্যাসে 1 বা 2 অঙ্কের ঘন্টা গ্রহণ করবে
জারোমন্ডা এক্স

2
ত্রুটিটি হ'ল আপনি যে ফর্ম্যাটটি সরবরাহ করছেন তা কোনও স্বীকৃত আইএসও ফর্ম্যাট নয় ... হয় কোনও স্বীকৃত আইএসও ফর্ম্যাট সরবরাহ করুন, অথবা প্রত্যাশিত বিন্যাসে "ইঙ্গিত" দেওয়ার একটি স্ট্রিং সরবরাহ করুন
জারোমন্ডা এক্স

ঠিক আছে ধন্যবাদ কিভাবে এই সম্পর্কে আমি এই ফর্ম্যাটটি যুক্ত করতে পারি? var আজ = moment.tz (আজকের স্ট্রিং, ur। urlParam ('t_zone'));
জেমাই

উত্তর:


180

তাদের দুর্দান্ত সব ডকুমেন্টেশন দেখুন!

তারা এখানে সতর্কতা বার্তা নিয়ে আলোচনা করে ।

স্ট্রিং + ফর্ম্যাট

সতর্কতা: স্ট্রিংগুলি পার্সিংয়ের জন্য ব্রাউজার সমর্থনটি বেমানান। কারণ কোন ফর্ম্যাটগুলি সমর্থন করা উচিত সে সম্পর্কে কোনও স্পেসিফিকেশন নেই, কিছু ব্রাউজারগুলিতে কী কাজ করে তা অন্যান্য ব্রাউজারগুলিতে কাজ করবে না।

আইএসও 8601 স্ট্রিং ব্যতীত অন্য যে কোনও কিছু পার্সিং করার জন্য ধারাবাহিক ফলাফলের জন্য আপনার স্ট্রিং + ফর্ম্যাট ব্যবহার করা উচিত ।

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

স্ট্রিং + ফর্ম্যাট (একাধিক ফর্ম্যাট)

আপনার যদি একাধিক ফর্ম্যাট থাকে তবে তাদের স্ট্রিং + ফর্ম্যাটগুলি (একটি 'এর' সহ) দেখুন।

আপনি যদি কোনও ইনপুট স্ট্রিংয়ের সঠিক বিন্যাসটি জানেন না, তবে জানেন তবে এটি অনেকের মধ্যে একটি হতে পারে তবে আপনি বিন্যাসের একটি অ্যারে ব্যবহার করতে পারেন।

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

89
ডকুমেন্টেশন অনুলিপি করা এবং আটকানোর পরিবর্তে দয়া করে একটি সত্য উত্তর দিন।
রিবস

2
এটিই আমাকে "ইনপুট" - মুহুর্তে ("12-25-1995", ["এমএম-ডিডি-ওয়াইওয়াই", "ওয়াইওয়াই-এমএম-ডিডি"] ফর্ম্যাট স্থাপন করতে সহায়তা করেছিল;
দেমদাভে

2
@ রিবস আমি মনে করি যে আমি প্রচুর ডকুমেন্টেশন যুক্ত করেছি কারণ সাধারণ সমাধানটি সরাসরি এগিয়ে আসে না। স্পষ্টতই জেমাইয়ের নির্দিষ্ট সমাধানটি উত্তরে হওয়া উচিত ছিল এবং আমি এটি যুক্ত করেছি (ধন্যবাদ আপনাকে ধন্যবাদ!) তবে পূর্ববর্তী কারণেই এখানে এতগুলি দলিল রয়েছে।
christo8989

ধন্যবাদ তবে কী, যদি আপনি এই ভারী গঠনের কাঠামোটি বাদ দিয়ে কেবল একটি সাধারণ তারিখ চান, তবে আমরা সম্ভবত এই সতর্কতাটিকে উপেক্ষা করতে পারি?
ওয়েবউইম্যান

এটি আমাকে সহায়তা করেছে -> মুহুর্তে ("12-25-1995", ["এমএম-ডিডি-ওয়াইওয়াই", "ইয়াইওয়াই-এমএম-ডিডি"]);
সিজার রদ্রিগেজ টি

50

এটি করা আমার পক্ষে কাজ করে:

moment(new Date("27/04/2016")).format

5
কনসোল দূষণ এড়াতে এটি প্রায় সহজ কাজ
জোসে

2
আইই সমর্থনটি যে কোনও ডিগ্রীতেই মোকাবেলা করতে হয় এমন কাউকে আমি এই পদ্ধতির পরামর্শ দেব না। আইই ১১ এ বিশেষত ফলাফলগুলি খুব
ঝলকযুক্ত

1
এটি সবচেয়ে সহজ এবং নির্ভুল উত্তর। ধন্যবাদ এটি আমাকে সাহায্য করেছে।
তাহির আফ্রিদি

15

আমি এই ত্রুটির মধ্যে দৌড়েছি কারণ আমি কোনও তারিখে পাস করার চেষ্টা করছিলাম localStorage। একটি নতুন Dateঅবজেক্টে তারিখটি পাস করা , এবং তারপরে .toISOString () কে কল করা আমার পক্ষে কৌশলটি সম্পাদন করেছে:

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

এটি কনসোলে কোনও সতর্কতা দমন করেছে।


এটি সতর্কবার্তাটি দমন করবে তবে খারাপ দিকটি যদি আপনি টাইমজোন সম্পর্কিত নির্দিষ্ট হন তবে আমি এটির পরামর্শ দেব না: কারণ এটি 'totoISOString ()' বলার সাথে সাথে দেওয়া তারিখটিকে ইউটিসিতে রূপান্তর করবে। অন্যান্য উত্তর থেকে বর্ণিত "মুহূর্ত (নতুন তারিখ (" 27/04/2016 "))। ফর্ম্যাট" চেষ্টা করুন - যা স্থানীয় সময়টি রাখবে ..
হোয়ামি


6

এই উত্তরটি হ'ল এই সতর্কবার্তাটির আরও ভাল ধারণা দেওয়া

যখন আপনি সময় অবজেক্ট তৈরি করতে মুহুর্তটি ব্যবহার করেন, তখন হতাশার সতর্কতা ঘটে var today = moment();

যদি এই সতর্কতাটি আপনার সাথে ঠিক থাকে তবে আমার কাছে একটি সহজ পদ্ধতি আছে।

পরিবর্তে ব্যবহার dateথেকে অবজেক্ট ব্যবহার করবেন না । উদাহরণস্বরূপ বর্তমান তারিখটি পেতে ব্যবহার করুন ।jsmomentmoment()

অথবা jsতারিখের অবজেক্টটিকে তারিখে রূপান্তর করুন moment। আপনি কেবল আপনার jsতারিখের অবজেক্টের ফর্ম্যাট নির্দিষ্ট করে তা করতে পারেন ।

অর্থাত, moment("js date", "js date format");

উদাহরণ:

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

(তবে আপনি কেবল এই পদ্ধতিটি অবজ্ঞাত অবধি ব্যবহার করতে পারবেন, momentভবিষ্যতে এটিকে অবজ্ঞা করা যেতে পারে )


6
সিরিয়াসলি! এই অবমূল্যায়ন সতর্কতাটি কীভাবে সরানো হবে সে সম্পর্কে প্রশ্ন! এই অবমূল্যায়নটি কীভাবে ব্যবহার করবেন তা জিজ্ঞাসা করছেন না! এছাড়াও, এটি "ভবিষ্যতে এটি মুছে ফেলা হবে" ভবিষ্যতে এই মুহুর্ত থেকে এটিকে অবজ্ঞা করা যেতে পারে "এটি ইতিমধ্যে অবমাননিত!
আল-মোতফার

@ আল-মোতফফার, আমার একটা ছোট সন্দেহ আছে, ifশর্ত ব্যর্থ হলে আপনি কেন বাইরে গেলেন ? উত্তরটি প্রস্থান না করে আপনার প্রস্থান করা উচিত।
সহিথিয়ান ভগ্নেশ্বরান

2
ধন্যবাদ, এটি এই উত্তর যা আমাকে এখানে জানতে চাইলে সত্যিই আমাকে দেখিয়েছিল।
ডিজিটাল ডিজাইনডিজে

3

তুমি ব্যবহার করতে পার

moment(date,"currentFormat").format("requiredFormat");

তারিখটি আইএসও ফর্ম্যাট না হলে এটি ব্যবহার করা উচিত কারণ এটি আমাদের বর্তমান ফর্ম্যাটটি কী তা মুহূর্তে জানিয়ে দেবে।


1
যদিও এই কোডটি প্রশ্নের উত্তর দিতে পারে, কীভাবে এবং / বা কেন এটি সমস্যার সমাধান করে তা সম্পর্কিত অতিরিক্ত প্রসঙ্গ সরবরাহ করলে উত্তরের দীর্ঘমেয়াদী মান উন্নত হবে।
লিওপাল

@ লেওপাল কিছু পরিবর্তন করেছেন!
বেস্ট 30

2

Moment.js এর সাথে স্ট্রিং পার্সিং করা হচ্ছে।

const date = '1231231231231' //Example String date
const parsed = moment(+date);

আমি যখন সপ্তাহের নম্বর পেতে ইউনিক্স ফর্ম্যাটটি ব্যবহার করার চেষ্টা করছিলাম তখন এটি আমাকে অবহেলা সতর্কতার হাত থেকে মুক্তি পেতে সহায়তা করে।
curious.netter
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.