javascript - জাভাস্ক্রিপ্টে বৈধ তারিখের সময়ের স্ট্রিংগুলি কী কী?




string date (2)

সুতরাং আমার কোন তারিখের সময়ের ফর্ম্যাটগুলি ব্যবহার করা উচিত?

সাধারণ সুপারিশটি হ'ল বিল্ট-ইন পার্সারটি একেবারেই অবিশ্বস্ত হিসাবে ব্যবহার না করা, সুতরাং "উচিত" এর উত্তরটি "কোনওটিই নয়"। দেখুন কেন ডেট.পার্স ভুল ফলাফল দেয়?

তবে, যেমন স্ট্র বলেছেন, আপনি সম্ভবত টাইমজোন দিয়ে ইসিএমএ YYYY-MM-DDTHH:mm:ss.sssZ নির্দিষ্ট ফর্ম্যাটটি ব্যবহার করতে পারেন: YYYY-MM-DDTHH:mm:ss.sssZ বা YYYY-MM-DDTHH:mm:ss.sss±HH:mm , ডন অন্য কোনও ফর্ম্যাটে বিশ্বাস নেই।

সমস্ত ব্রাউজার একই ফর্ম্যাটগুলি সমর্থন করে?

না।

মোজিলা ফায়ারফক্স, গুগল ক্রোম, মাইক্রোসফ্ট ইন্টারনেট এক্সপ্লোরার, মাইক্রোসফ্ট এজ এবং অ্যাপল সাফারি কীভাবে তারিখের সময়গুলি হ্যান্ডেল করবে?

ভিন্নভাবে। ইসিএমএ -২ in২ এর বিন্যাস ব্যতীত অন্য যে কোনও কিছুই বাস্তবায়ন নির্ভর, এবং ইসিএমএ -২ format২ ফর্ম্যাটটি বিশ্লেষণ করার ক্ষেত্রে ত্রুটি রয়েছে।

নোড.জেএস সম্পর্কে কী?

সম্ভবত আবার আলাদা, উপরে দেখুন।

এটি কি স্থানীয় তারিখের ফর্ম্যাটটিকে বিবেচনায় রাখে? যেমন আমি যদি সুইজারল্যান্ডে থাকি এবং তারিখের ফর্ম্যাটটি 30.07.2018 হয় তবে আমি কি নতুন তারিখ ('30 .07.2018 ') ব্যবহার করতে পারি?

হতে পারে. যেহেতু এটি স্ট্যান্ডার্ড ফর্ম্যাট নয়, পার্সিং বাস্তবায়ন নির্ভর, তাই সম্ভবত, সম্ভবত না।

এটি কি স্থানীয় সময় অঞ্চল বিবেচনায় নেয়?

এটি হোস্ট টাইমজোন অফসেট ব্যবহার করে যেখানে স্ট্রিংটি স্থানীয় হিসাবে পার্স করা হয় এবং স্থানীয় সময় ব্যবহার করে প্রদর্শিত স্ট্রিং তৈরি করতে। অন্যথায় এটি ইউটিসি ব্যবহার করে (এবং অভ্যন্তরীণ সময়ের মানটি ইউটিসি)।

আমি কীভাবে তারিখের অবজেক্ট থেকে তারিখের সময়ের স্ট্রিং পেতে পারি?

Date.prototype.toString() , বা জাভাস্ক্রিপ্টে একটি তারিখের ফর্ম্যাট করার বিষয়ে ডকুমেন্টেশনগুলি কোথায় পাব ?

আমি কীভাবে অবৈধ তারিখের তারিখগুলি সনাক্ত করতে পারি?

here প্রথম 3 টির মধ্যে একটির উত্তর দেওয়া উচিত।

Moment.js এর মতো তারিখ লাইব্রেরি কীভাবে তারিখের স্ট্রিংগুলি পরিচালনা করে?

তারা ডিফল্ট বা সরবরাহিত বিন্যাসের ভিত্তিতে পার্স করে। উত্সটি পড়ুন (উদাঃ fecha.js একটি সহজ পার্সার এবং ফর্ম্যাটর সহ ভাল লিখিত, কোড অনুসরণ করা সহজ)।

কোনও পার্সার লেখা শক্ত নয়, তবে ইনপুট ফর্ম্যাটটি অনুমান করার চেষ্টা করা হয়েছে (যেমন অন্তর্নির্মিত পার্সাররা করতে থাকে) পুরোপুরি বাস্তবায়ন জুড়ে অসম্পূর্ণ এবং অবিশ্বস্ত inc সুতরাং পার্সারের ডিফল্ট বিন্যাসে ইনপুট স্ট্রিংটি না থাকলে ফর্ম্যাটটি সরবরাহ করা উচিত is

দ্রষ্টব্য

ECMAScript 2019 (বর্তমানে খসড়াটিতে) পার্সিং এবং ফর্ম্যাটিংয়ের জন্য বাস্তবায়নগুলি অবশ্যই স্ট্রিংগুলির ফর্ম্যাটগুলিতে পরিবর্তন রয়েছে, তবে আমি মনে করি পার্সারে অন্তর্নির্মিত এড়াতে সাধারণ পরামর্শটি কিছু সময়ের জন্য দাঁড়াবে।

জাভাস্ক্রিপ্টে new Date বা Date.parse ব্যবহার করার সময়, আমি কেবল নির্বিচার তারিখের ফর্ম্যাটগুলি পাস করতে পারি না। ফর্ম্যাটের উপর নির্ভর করে, আমি চেয়েছিলাম তার চেয়ে আলাদা তারিখ বা Invalid Date পরিবর্তে Invalid Date চেয়েছিলাম। কিছু তারিখের ফর্ম্যাটগুলি অন্য ব্রাউজারে নয় তবে একটি ব্রাউজারে কাজ করে। সুতরাং আমার কোন তারিখের সময়ের ফর্ম্যাটগুলি ব্যবহার করা উচিত?

অতিরিক্ত প্রশ্নাবলী:

  • সমস্ত ব্রাউজার একই ফর্ম্যাটগুলি সমর্থন করে? মোজিলা ফায়ারফক্স, গুগল ক্রোম, মাইক্রোসফ্ট ইন্টারনেট এক্সপ্লোরার, মাইক্রোসফ্ট এজ এবং অ্যাপল সাফারি কীভাবে তারিখের সময়গুলি হ্যান্ডেল করবে? নোড.জেএস সম্পর্কে কী?

  • এটি কি স্থানীয় তারিখের ফর্ম্যাটটিকে বিবেচনায় রাখে? যেমন আমি যদি সুইজারল্যান্ডে থাকি এবং তারিখের ফর্ম্যাটটি 30.07.2018 হয় তবে আমি কি new Date('30.07.2018') ব্যবহার করতে পারি?

  • এটি কি স্থানীয় সময় অঞ্চল বিবেচনায় নেয়?

  • আমি কীভাবে তারিখের অবজেক্ট থেকে তারিখের সময়ের স্ট্রিং পেতে পারি?

  • আমি কীভাবে অবৈধ তারিখের তারিখগুলি সনাক্ত করতে পারি?

  • Moment.js এর মতো তারিখ লাইব্রেরি কীভাবে তারিখের স্ট্রিংগুলি পরিচালনা করে?

আপনি খেয়াল না করলে আমি নিজের প্রশ্নের উত্তর দিয়েছি ( why? )


দরকারী জিনিসপত্রাদী

জাভাস্ক্রিপ্ট আনুষ্ঠানিকভাবে আইএসও 8601 বর্ধিত বিন্যাসের সরলীকরণ সমর্থন করে supports ফর্ম্যাটটি নিম্নরূপ: YYYY-MM-DDTHH:mm:ss.sssZ । অক্ষর T হ'ল তারিখ / সময় বিভাজক এবং Z টাইম জোন অফসেটকে Z (ইউটিসির জন্য) হিসাবে নির্দিষ্ট করা হয় অথবা হয় + বা - টাইম এক্সপ্রেশন দ্বারা HH:mm । সেই বিন্যাসের কিছু অংশ (যেমন: সময়) বাদ দেওয়া যেতে পারে।

নোট করুন যে বছরগুলিতে অবশ্যই কমপক্ষে চারটি অঙ্ক থাকতে হবে, মাস / দিন / ঘন্টা / মিনিট / সেকেন্ডে অবশ্যই দুটি অঙ্ক থাকতে হবে এবং মিলসেকেন্ডে অবশ্যই তিনটি অঙ্ক থাকতে হবে। উদাহরণস্বরূপ, 99-1-1 একটি বৈধ তারিখের স্ট্রিং নয়।

এগুলি বৈধ তারিখ (সময়) স্ট্রিংয়ের কয়েকটি উদাহরণ:

  • 2018-12-30
  • 2018-12-30T20:59
  • 2018-12-30T20:59:00
  • 2018-12-30T20:59:00.000Z
  • 2018-12-30T20:59:00.000+01:00
  • 2018-12-30T20:59:00.000-01:00

আপনি যখন অফসেট টাইম অঞ্চলটি বাদ দেন, তারিখের সময়গুলি স্থানীয় স্থানীয় সময় হিসাবে ব্যাখ্যা করা হয়। আপনি যখন পুরোপুরি সময় বাদ দেন, তারিখগুলি ইউটিসি হিসাবে ব্যাখ্যা করা হয়।

গুরুত্বপূর্ণ : সমস্ত আধুনিক এবং যুক্তিসঙ্গতভাবে পুরানো ব্রাউজারগুলি এবং প্রয়োগগুলি স্পেসিফিকেশন অনুযায়ী পূর্ণ দৈর্ঘ্যের তারিখের সময়ের বিন্যাস সমর্থন করে। তবে সময় অঞ্চল ছাড়াই তারিখের (সময়) স্ট্রিংগুলির পরিচালনা করার মধ্যে পার্থক্য রয়েছে (বিশদগুলির জন্য নীচে "মিসিং টাইম অঞ্চল অফসেট" দেখুন)। সময় অঞ্চল (স্থিতি 2018) ছাড়া আপনার তারিখের সময়কর্মগুলি ব্যবহার করা উচিত নয় । পরিবর্তে মিলিসেকেন্ডে একটি ইউনিক্স টাইমস্ট্যাম্প বা তারিখের বিভিন্ন অংশের জন্য পৃথক যুক্তিগুলি Date নির্মাণকারীকে পাস করুন।

বেশিরভাগ ব্রাউজার অন্যান্য কিছু ফর্ম্যাটকে সমর্থন করে তবে সেগুলি নির্দিষ্ট করা হয়নি এবং সুতরাং সমস্ত ব্রাউজারগুলিতে একইভাবে কাজ করে না। যদি কিছু হয় তবে আপনার কেবল উপরে বর্ণিত তারিখের সময়ের স্ট্রিং ফর্ম্যাটগুলি ব্যবহার করা উচিত। প্রতিটি অন্যান্য ফর্ম্যাট অন্য ব্রাউজারগুলিতে এমনকি একই ব্রাউজারের অন্যান্য সংস্করণেও ভেঙে যেতে পারে।

আপনি যদি কোনও তারিখের পরিবর্তে Invalid Date চলে যান তবে আপনি সম্ভবত একটি অবৈধ তারিখের সময়ের স্ট্রিং ব্যবহার করছেন।

এবং এখন আরও কিছুটা বিশদ সহ

তারিখের সময়ের স্ট্রিং ফর্ম্যাট

ইসমাস্ক্রিপ্ট (জাভাস্ক্রিপ্ট ভাষা প্রয়োগ করে এমন specification ) প্রতিষ্ঠার পর থেকেই new Date ( specification ) এবং Date.parse ( specification ) তারিখের স্ট্রিংগুলিকে সমর্থন করে আসছে। তবে, প্রথম সংস্করণগুলি আসলে কোনও তারিখের সময়ের ফর্ম্যাটটি নির্দিষ্ট করে নি। এটি ২০০৯ সালে পরিবর্তিত হয়েছিল যখন ইএস 5 তারিখের সময়ের বিন্যাসের একটি স্পেসিফিকেশন সহ প্রবর্তিত হয়েছিল।

অধিকার

ইসমাস্ক্রিপ্ট ISO 8601 এক্সটেন্ডেড ফর্ম্যাটটির সরলকরণ হিসাবে তারিখের সময়ের স্ট্রিং ফর্ম্যাটটিকে নির্দিষ্ট করে। ফর্ম্যাটটি নিম্নরূপ: YYYY-MM-DDTHH:mm:ss.sssZ

  • YYYY প্রলেপটিক গ্রেগরিয়ান ক্যালেন্ডারে বছরের দশমিক সংখ্যা 00
  • - (হাইফেন) অক্ষরে অক্ষরে দু'বার প্রদর্শিত হয়।
  • MM 01 (জানুয়ারি) থেকে 12 (ডিসেম্বর) পর্যন্ত বছরের মাস।
  • DD 01 থেকে 31 পর্যন্ত মাসের দিন।
  • T আংশিকভাবে স্ট্রিংয়ে উপস্থিত হয়, সময় উপাদানটির সূচনা নির্দেশ করতে।
  • HH হল মধ্যরাত থেকে ২00 থেকে 24 অবধি দুটি দশমিক অঙ্ক হিসাবে পূর্ণ সময়টির সংখ্যা।
  • : (কোলন) অক্ষরে অক্ষরে দু'বার প্রদর্শিত হয়।
  • mm হ'ল 00 থেকে 59 পর্যন্ত দুটি দশমিক অঙ্ক হিসাবে ঘন্টা শুরু হওয়ার পর থেকে সম্পূর্ণ মিনিটের সংখ্যা।
  • ss হ'ল মিনিট শুরুর পর থেকে সেকেন্ডের সংখ্যা হ'ল 00 থেকে 59 পর্যন্ত দুটি দশমিক অঙ্ক।
  • . (ডট) অক্ষরে অক্ষরে উপস্থিত হয় appears
  • sss হ'ল দ্বিতীয় দশমিক অঙ্ক হিসাবে দ্বিতীয়টি শুরু হওয়ার পর থেকে সম্পূর্ণ মিলি সেকেন্ডের সংখ্যা।
  • Z হ'ল টাইম জোন অফসেটকে "জেড" (ইউটিসির জন্য) হিসাবে নির্দিষ্ট করা হয় অথবা "+" বা "-" টাইম এক্সপ্রেশন দ্বারা অনুসরণ করা হয় HH:mm

স্পেসিফিকেশনটিতে আরও mentions যে "স্ট্রিং [নির্দিষ্ট] ফর্ম্যাটে মেনে চলতে না পারলে ফাংশনটি কোনও প্রয়োগ-নির্দিষ্ট হিউরিস্টিকস বা বাস্তবায়ন-নির্দিষ্ট তারিখের ফর্ম্যাটে ফিরে যেতে পারে" যার ফলস্বরূপ বিভিন্ন ব্রাউজারে বিভিন্ন তারিখের ফলাফল হতে পারে।

ECMAScript কোনও ব্যবহারকারীর স্থানীয় তারিখের সময়ের ফর্ম্যাটগুলিকে অ্যাকাউন্টে নেয় না যার অর্থ আপনি দেশ বা অঞ্চল-নির্দিষ্ট তারিখের সময় ফর্ম্যাটগুলি ব্যবহার করতে পারবেন না।

সংক্ষিপ্ত তারিখ (এবং সময়) ফর্ম

স্পেসিফিকেশনটিতে নীচে আরও সংক্ষিপ্ত বিন্যাস অন্তর্ভুক্ত রয়েছে।

এই ফর্ম্যাটটিতে কেবলমাত্র তারিখের ফর্মগুলি অন্তর্ভুক্ত রয়েছে:

  • YYYY
  • YYYY-MM
  • YYYY-MM-DD

এটিতে "তারিখ-সময়" ফর্মগুলি অন্তর্ভুক্ত রয়েছে যা কেবলমাত্র উপরের তারিখের একমাত্র ফর্ম সমন্বিত অবিলম্বে নিম্নলিখিত বিকল্পগুলির সাথে অফসেট সংযুক্ত অফসেট সহ নিম্নলিখিত সময় ফর্মগুলির সাথে সাথে অনুসরণ করে:

  • THH:mm
  • THH:mm:ss
  • THH:mm:ss.sss

ফলব্যাক মান

[...] যদি MM বা DD ক্ষেত্রগুলি অনুপস্থিত থাকে তবে "01" মান হিসাবে ব্যবহৃত হয়। যদি HH , mm , বা ss ক্ষেত্রগুলি অনুপস্থিত থাকে তবে "00" মান হিসাবে ব্যবহৃত হয় এবং অনুপস্থিত sss ক্ষেত্রের মান "000" । যখন সময় অঞ্চল অফসেট অনুপস্থিত থাকে, কেবলমাত্র তারিখের ফর্মগুলি ইউটিসি সময় হিসাবে ব্যাখ্যা করা হয় এবং তারিখ-সময় ফর্মগুলি স্থানীয় সময় হিসাবে ব্যাখ্যা করা হয়।

অভাবিত ব্রাউজার সমর্থন সম্পর্কে আরও তথ্যের জন্য নীচে "মিসিং টাইম জোন অফসেট" দেখুন।

সীমাবদ্ধ মূল্যবোধের বাইরে

একটি ফর্ম্যাট স্ট্রিংয়ের অবৈধ মান (সীমার বাইরে সিনট্যাক্স ত্রুটিগুলির অর্থ) যে বিন্যাসের স্ট্রিংটি এই ফর্ম্যাটটির বৈধ উদাহরণ নয়।

উদাহরণস্বরূপ, new Date('2018-01-32') এবং new Date('2018-02-29') একটি Invalid Date ফলস্বরূপ।

বর্ধিত বছর

ECMAScript এর তারিখের সময় বিন্যাসটি বর্ধিত বছরগুলিও নির্দিষ্ট করে যা ছয় ডিজিট বছরের মান। এ জাতীয় একটি বর্ধিত বছরের স্ট্রিং ফর্ম্যাটটির উদাহরণ দেখতে দেখতে +287396-10-12T08:59:00.992Z যা 287396 খ্রিস্টাব্দে একটি তারিখ বোঝায় বর্ধিত বছরগুলি হয় ইতিবাচক বা নেতিবাচক হতে পারে।

তারিখ API

ইসমাস্ক্রিপ্ট বিস্তৃত তারিখের অবজেক্টের বৈশিষ্ট্য নির্দিষ্ট করে । একটি বৈধ তারিখ অবজেক্ট দেওয়া, আপনি একটি বৈধ তারিখ সময় স্ট্রিং পেতে Date.prototype.toISOString() ব্যবহার করতে পারেন। নোট করুন যে সময় অঞ্চলটি সর্বদা ইউটিসি থাকে।

new Date().toISOString() // "2018-08-05T20:19:50.905Z"

নিম্নলিখিত ফাংশনটি ব্যবহার করে কোনও তারিখ অবজেক্ট বৈধ বা একটি Invalid Date কিনা তা সনাক্ত করাও সম্ভব।

function isValidDate(d) {
  return d instanceof Date && !isNaN(d);
}

উত্স এবং আরও তথ্য জাভাস্ক্রিপ্টে একটি "অবৈধ তারিখ" তারিখের উদাহরণ সনাক্ত করতে পাওয়া যাবে।

উদাহরণ

বৈধ তারিখের সময় ফর্ম্যাটগুলি

নিম্নলিখিত তারিখের সময়ের ফর্ম্যাটগুলি নির্দিষ্টকরণ অনুযায়ী সমস্ত বৈধ এবং প্রতিটি ব্রাউজারে নোড.জেএস বা অন্যান্য বাস্তবায়নে কাজ করা উচিত যা ES2016 বা ততোধিক সমর্থন করে।

2018
2018-01
2018-01-01
2018-01-01T00:00
2018-01-01T00:00:00
2018-01-01T00:00:00.000
2018-01-01T00:00:00.000Z
2018-01-01T00:00:00.000+01:00
2018-01-01T00:00:00.000-01:00
+002018-01-01T00:00:00.000+01:00

অবৈধ তারিখের সময় ফর্ম্যাটগুলি

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

2018-1-1 // month and date must be two digits
2018-01-01T0:0:0.0 // hour/minute/second must be two digits, millisecond must be three digits
2018-01-01 00:00 // whitespace must be "T" instead
2018-01-01T00 // shortest time part must have format HH:mm
2018-01-01T00:00:00.000+01 // time zone must have format HH:mm

ব্রাউজার সমর্থন

আজ, প্রতিটি আধুনিক এবং যুক্তিসঙ্গতভাবে পুরানো ব্রাউজারটি তারিখের সময়ের ফর্ম্যাটকে সমর্থন করে যা ২০০৯ সালে ES5 নির্দিষ্টকরণের সাথে প্রবর্তিত হয়েছিল। তবে, আজও (স্থিতি 2018) সময় অঞ্চল ছাড়া তারিখের জন্য বিভিন্ন স্ট্রিমিংয়ের জন্য বিভিন্ন বাস্তবায়ন রয়েছে (দেখুন "হারিয়ে যাওয়া সময় অঞ্চল অফসেট দেখুন" " নিচে). আপনার যদি পুরানো ব্রাউজারগুলিকে সমর্থন করতে বা টাইম জোন ছাড়াই স্ট্রিংগুলি ব্যবহার করার দরকার হয় তবে আপনার তারিখের সময়যুক্ত স্ট্রিং ব্যবহার করা উচিত নয় । পরিবর্তে, 1 জানুয়ারী, 1970, 00:00:00 ইউটিসি বা Date কনস্ট্রাক্টরের বিভিন্ন তারিখের অংশগুলিকে প্রতিনিধিত্ব করে এমন দুটি বা ততোধিক যুক্তি সংক্ষিপ্ত করুন

হারিয়ে যাওয়ার সময় অঞ্চল অফসেট

ES5.1 incorrectly বলেছে যে অনুপস্থিত টাইম জোনের অফসেটের মান হ'ল “Z” যা আইএসও 8601 এর সাথে বিরোধী This এই ভুলটি ES6 (ES2015) এ স্থির করা হয়েছিল এবং ES2016 এ প্রসারিত হয়েছিল (নীচে "ECMAScript স্পেসিফিকেশনের পরিবর্তনগুলি দেখুন")। ES2016 অনুসারে, সময় অঞ্চল ছাড়া তারিখের সময়ের স্ট্রিংগুলি স্থানীয় সময় হিসাবে পার্স করা হয় যখন কেবল তারিখের স্ট্রিংগুলি ইউটিসি হিসাবে পার্স করা হয়।

এই উত্তর অনুসারে, কিছু বাস্তবায়ন কখনই ES5.1 এ বর্ণিত আচরণটি কার্যকর করে না। এর মধ্যে একটি মোজিলা ফায়ারফক্স বলে মনে হচ্ছে। ES2016 (এবং এর চেয়েও বেশি) এর স্পেসিফিকেশনের সাথে সম্মতিযুক্ত বলে মনে হচ্ছে এমন অন্যান্য ব্রাউজারগুলি হ'ল গুগল ক্রোম 65+, মাইক্রোসফ্ট ইন্টারনেট এক্সপ্লোরার 11 এবং মাইক্রোসফ্ট এজ। অ্যাপল সাফারি (১১.১.২) এর বর্তমান সংস্করণটি উপযুক্ত নয় কারণ এটি স্থানীয় সময়ের পরিবর্তে সময় অঞ্চলকে (যেমন 2018-01-01T00:00 ) ইউটিসি হিসাবে ভুলভাবে তারিখের স্ট্রিংগুলি পার্স করে।

উত্তরাধিকার তারিখের সময় ফর্ম্যাটগুলি

ES5 ২০০৯ সালে তারিখের সময়ের জন্য একটি নির্দিষ্টকরণ প্রবর্তন করেছিল that এর আগে, কোনও ব্রাউজার দ্বারা সমর্থিত কোনও নির্দিষ্ট বিন্যাস ছিল না। ফলস্বরূপ, প্রতিটি ব্রাউজার বিক্রেতা বিভিন্ন ফর্ম্যাটগুলির জন্য সমর্থন যোগ করে যা প্রায়শই বিভিন্ন ব্রাউজার (এবং সংস্করণ) জুড়ে কাজ করে না। প্রাচীন ইতিহাসের একটি ছোট উদাহরণের জন্য, date-formats

পুরানো ওয়েবসাইটগুলির পশ্চাদপটে সামঞ্জস্যতা না ভাঙার জন্য বেশিরভাগ ব্রাউজারগুলি এখনও সেই উত্তরাধিকার ফর্ম্যাটগুলিকে সমর্থন করে। তবে এই অ-মানক ফর্ম্যাটগুলির উপর নির্ভর করা নিরাপদ নয় কারণ সেগুলি অসঙ্গতিপূর্ণ হতে পারে বা যে কোনও সময় মুছে ফেলা হতে পারে।

Date.prototype.toString() এবং Date.prototype.toUTCString()

ES2018 প্রথমবারের জন্য তারিখের ফর্ম্যাট নির্দিষ্ট করেছে যা Date.prototype.toString() এবং Date.prototype.toUTCString() Date.prototype.toString() দ্বারা ফিরে আসে। ইতিমধ্যে এর আগে, ইসিএমএ নির্দিষ্টকরণের জন্য সেই পদ্ধতিগুলির দ্বারা প্রত্যাবর্তিত ফর্ম্যাটগুলি সঠিকভাবে পার্স করার জন্য Date Date.parse এবং Date Date.parse প্রয়োজন (যদিও এটি 2018 এর আগে কোনও ফর্ম্যাট নির্দিষ্ট করে নি)।

Date.prototype.toString() এর একটি উদাহরণ রিটার্ন মান এর মতো দেখতে পারে:

Sun Feb 03 2019 14:27:49 GMT+0100 (Central European Standard Time)

নোট করুন যে বন্ধনীগুলির মধ্যে টাইমজোন নাম alচ্ছিক এবং সঠিক নামটি "বাস্তবায়ন নির্ভর"।

Date.prototype.toUTCString() হিসাবে একই ধরণের বিন্যাসে একটি তারিখ ফেরত দেয় তবে একটি শূন্য টাইমজোন অফসেট সহ। উদাহরণস্বরূপ ফর্ম্যাটটি দেখতে এটির মতো হতে পারে:

Sun, 03 Feb 2019 13:27:49 GMT

নোট করুন যে একটি কমা রয়েছে , সপ্তাহের দিন এবং দিনের মাসের পরে Date.prototype.toUTCString() তুলনায় বিপরীত হয়।

যেহেতু এই ফর্ম্যাটগুলি কেবল 2018 সালে নির্দিষ্ট করা হয়েছে, আপনার বিভিন্ন বাস্তবায়নে (বিশেষত পুরানো ব্রাউজারগুলি) সমানভাবে কাজ করার উপর তাদের নির্ভর করা উচিত নয়।

node.js

নোড.জেএস ভি 8 জাভা স্ক্রিপ্ট ইঞ্জিনে চলছে যা গুগল ক্রোমেও ব্যবহৃত হয়। সুতরাং তারিখের সময়ের স্ট্রিং ফর্ম্যাট সম্পর্কিত একই স্পেসিফিকেশন প্রযোজ্য। কোডটি যদিও ব্যাকএন্ডে চলে, ব্যবহারকারী স্থানীয় সময় সময় অঞ্চলগুলিকে প্রভাবিত করে না তবে কেবল সার্ভারের সেটিংসই করে। নোড.জেএস অ্যাপ্লিকেশন হোস্ট করে এমন একটি পরিষেবা (পাস) সরবরাহকারী হিসাবে বেশিরভাগ প্ল্যাটফর্ম ইউটিসিটিকে তাদের ডিফল্ট সময় অঞ্চল হিসাবে ব্যবহার করে।

তারিখ সময় গ্রন্থাগারসমূহ

Moment.js

Moment.js জাভাস্ক্রিপ্টে তারিখগুলি পরিচালনা করতে সহায়তা করার জন্য একটি খুব জনপ্রিয় গ্রন্থাগার এবং এটি ECMAScript নির্দিষ্টকরণের চেয়ে আরও ফর্ম্যাটকে সমর্থন করে । এছাড়াও, মোমেন্ট.জেএস স্ট্রিং এবং একটি স্বেচ্ছাসেবী ফর্ম্যাটের উপর ভিত্তি করে তারিখ অবজেক্ট তৈরি করতেও সমর্থন করে

Luxon

Luxon আইএসও 8601, এইচটিটিপি, আরএফসি 2822, এসকিউএল এবং স্বেচ্ছাসেবী ফর্ম্যাটগুলি parsing সমর্থন করে। তবে শুধুমাত্র বিভিন্ন তারিখের সময়ের জন্য বিভিন্ন ফাংশন ব্যবহার করে।

ECMAScript স্পেসিফিকেশন পরিবর্তন

তারিখের সময়ের স্ট্রিং ফর্ম্যাট সম্পর্কিত ECMAScript নির্দিষ্টকরণে উল্লেখযোগ্য পরিবর্তনগুলির একটি তালিকা।

ES2018 পরিবর্তনগুলি

Date.prototype.toString() এবং Date.prototype.toUTCString() দ্বারা ফেরত তারিখের ফর্ম্যাটগুলির জন্য একটি স্পেসিফিকেশন উপস্থাপন করে।

ES2017 পরিবর্তনগুলি

উল্লেখযোগ্য পরিবর্তন নেই।

ES2016 পরিবর্তন

যদি টাইম জোনের অফসেটটি অনুপস্থিত থাকে তবে তারিখের সময়টিকে স্থানীয় সময় হিসাবে ব্যাখ্যা করা হয়।

যখন সময় অঞ্চল অফসেট অনুপস্থিত থাকে, কেবলমাত্র তারিখের ফর্মগুলি ইউটিসি সময় হিসাবে ব্যাখ্যা করা হয় এবং তারিখ-সময় ফর্মগুলি স্থানীয় সময় হিসাবে ব্যাখ্যা করা হয়।

ES6 (ES2015) এ পরিবর্তনগুলি

অনুপস্থিত সময় অঞ্চল অফসেটের মান হ'ল “Z”

যদি টাইম জোনের অফসেটটি অনুপস্থিত থাকে তবে তারিখের সময়টিকে স্থানীয় সময় হিসাবে ব্যাখ্যা করা হয়।

incorrectly থেকে:

যদি কোনও টাইম জোনের অফসেট উপস্থিত না থাকে তবে স্থানীয় সময় অঞ্চলটি ব্যবহৃত হয়। সংস্করণ 5.1 ভুলভাবে বলেছে যে একটি অনুপস্থিত সময় অঞ্চলটিকে "z" হিসাবে ব্যাখ্যা করা উচিত।

তারিখের সময়ের স্ট্রিং ফর্ম্যাটটি দেখুন: পরিবর্তনের বিষয়ে আরও তথ্যের জন্য ওয়েব-সামঞ্জস্যপূর্ণ নয় ES5 থেকে ডিফল্ট টাইম জোনের পার্থক্য

ES5.1 পরিবর্তন

যদি MM বা DD ক্ষেত্রগুলি অনুপস্থিত থাকে তবে “01” মান হিসাবে ব্যবহৃত হয়। যদি HH , mm , বা ss ক্ষেত্রগুলি অনুপস্থিত থাকে তবে “00” মান হিসাবে ব্যবহৃত হয় এবং অনুপস্থিত sss ক্ষেত্রের মান “000” । অনুপস্থিত সময় অঞ্চল অফসেটের মান হ'ল “Z”

ES5 পরিবর্তন

ECMAScript নির্দিষ্টকরণের তারিখের সময়ের স্ট্রিং ফর্ম্যাটটির প্রথম ভূমিকা।

ইসমাস্ক্রিপ্ট আইএসও 8601 এক্সটেন্ডেড ফরম্যাটের সরলকরণের ভিত্তিতে তারিখ-সময়ের জন্য একটি স্ট্রিং ইন্টারচেঞ্জ ফর্ম্যাটকে সংজ্ঞায়িত করে। ফর্ম্যাটটি নিম্নরূপ: YYYY-MM-DDTHH:mm:ss.sssZ

এছাড়াও Date.prototype.toISOString() প্রবর্তন করে যা নির্দিষ্ট ফর্ম্যাটে একটি তারিখের সময়ের স্ট্রিং দেয়।

ES3 পরিবর্তন

Date.prototype.toGMTString() করে এবং Date.parse(x.toUTCString()) সাথে Date.parse(x.toUTCString()) সাথে প্রতিস্থাপন করে যে এই পদ্ধতিগুলির দ্বারা প্রত্যাবর্তিত ফর্ম্যাটটি অবশ্যই ডেট.পার্সের ইমপ্লিমেন্টেশন দ্বারা সঠিকভাবে পার্সেবল হতে হবে। নোট করুন যে Date.parse(x.toUTCString()) দ্বারা ফিরে আসা ফর্ম্যাটটি "বাস্তবায়ন-নির্ভর"।

ES2 পরিবর্তন

উল্লেখযোগ্য পরিবর্তন নেই।

প্রাথমিক স্পেসিফিকেশন: ES1

ES1 new Date(value) এবং Date.parse(value) ব্যবহার করার জন্য তারিখের সময়ের স্ট্রিংগুলি প্রবর্তন করেছিল। যাইহোক, এটি একটি আসল তারিখ (সময়) ফর্ম্যাট নির্দিষ্ট করে নি, এটি এমনকি এটি উল্লেখ করে

[...] ডেট Date.parse উত্পাদিত মান হ'ল বাস্তবায়ন নির্ভর [...]

স্পেসিফিকেশন এছাড়াও উল্লেখ

x যদি কোনও তারিখের অবজেক্ট হয় [...], তবে নিম্নলিখিত প্রয়োগের সমস্তটির একই বাস্তবায়নের ক্ষেত্রে একই সংখ্যার মান হওয়া উচিত [...]:

  • [...]
  • Date.parse(x.toString())
  • Date.parse(x.toGMTString())

তবে, Date.prototype.toString() এবং Date.prototype.toGMTString() উভয়ের প্রত্যাবর্তিত মান "বাস্তবায়ন নির্ভর" হিসাবে নির্দিষ্ট করা হয়েছিল।






time