সাফারিতে অবৈধ তারিখ


155
 alert(new Date('2010-11-29'));

ক্রোম, এফএফ এর সাথে সমস্যা নেই তবে সাফারি "অবৈধ তারিখ" কেঁদে ফেলে। কেন?

সম্পাদনা: ঠিক আছে, নীচের মতামত অনুসারে, আমি স্ট্রিং পার্সিং ব্যবহার করেছি এবং এটি ব্যবহার করে দেখেছি:

alert(new Date('11-29-2010')); //doesn't work in safari
alert(new Date('29-11-2010')); //doesn't work in safari
alert(new Date('2010-29-11')); //doesn't work in safari

22 মার্চ 2018 সম্পাদনা করুন : মনে হচ্ছে লোকেরা এখনও এখানে অবতরণ করছে - আজ, আমি এটি ব্যবহার করব momentবা date-fnsএটি দিয়ে করব। ডেট-এফএনএস খুব ব্যথা মুক্ত এবং হালকাও।


ঠিক একই সমস্যার দিকে তাকানোর জন্য অন্যদের জন্য: আমি ডেটজেএস ব্যবহার করে শেষ করেছি, যা আমার সমস্যাটি সামগ্রিকভাবে সমাধান করেছে .. বিশদগুলির জন্য গৃহীত উত্তর দেখুন।
শ্রীনাথ

2
টাইমস্ট্যাম্পটি পার্স করার জন্য moment.js ব্যবহার করুন । বিশেষ করে ক্রস প্ল্যাটফর্ম ওয়েব নিয়ে কাজ করার সময়
মিং ইউয়েন

1
এটি একটি পুরানো প্রশ্ন। ECMAScript 2015 হিসাবে, আইএসও 8601 তারিখের কেবল স্ট্রিংগুলি ইউটিসি হিসাবে পার্স করা হয়েছে। তবে আশেপাশে আরও পুরানো ব্রাউজার থাকতে পারে যা একে একে পার্স করবে না বা এটিকে স্থানীয় হিসাবে বিবেচনা করবে না।
রবজি

উত্তর:


166

প্যাটার্নটি কনস্ট্রাক্টরের yyyy-MM-ddজন্য অফিসিয়ালি সমর্থিত বিন্যাস নয় Date। ফায়ারফক্স এটি সমর্থন করে বলে মনে হচ্ছে, তবে অন্যান্য ব্রাউজারগুলিতে এটি করা গণনা করবেন না।

এখানে কয়েকটি সমর্থিত স্ট্রিং রয়েছে:

  • MM-DD-YYYY
  • YYYY / MM / DD
  • MM / DD / YYYY
  • এমএমএমএম ডিডি, ইয়ে
  • এমএমএম ডিডি, ইয়ে

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

সম্পাদনা করুন : সবেমাত্র ইসিএমএ-262 স্ট্যান্ডার্ড পরীক্ষা করা হয়েছে । 15.9.1.15 বিভাগ থেকে উদ্ধৃতি:

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

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

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

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

  • হল YYYY
  • হল YYYY-MM
  • হল YYYY-MM-ডিডি

এটিতে timeচ্ছিক সময় অঞ্চল অফসেট সংযুক্ত সময় সহ কেবলমাত্র ফর্মগুলি অন্তর্ভুক্ত রয়েছে:

  • THH: মিমি
  • THH: মি: সে
  • THH: MM: ss.sss

এছাড়াও "তারিখ-সময়" অন্তর্ভুক্ত রয়েছে যা উপরের কোনও সংমিশ্রণ হতে পারে।

সুতরাং, মনে হচ্ছে YYYY-MM-DD স্ট্যান্ডার্ডের অন্তর্ভুক্ত রয়েছে তবে কিছু কারণে সাফারি এটিকে সমর্থন করে না।

আপডেট : ডেটজেএস ডকুমেন্টেশনগুলি দেখার পরে এটি ব্যবহার করে আপনার কোডটি কোডের সাহায্যে সমাধান করা উচিত:

var myDate1 = Date.parseExact("29-11-2010", "dd-MM-yyyy");
var myDate2 = Date.parseExact("11-29-2010", "MM-dd-yyyy");
var myDate3 = Date.parseExact("2010-11-29", "yyyy-MM-dd");
var myDate4 = Date.parseExact("2010-29-11", "yyyy-dd-MM");

4
আইএসও 8601 ফর্ম্যাটটি ইসমাস্ক্রিপ্ট স্ট্যান্ডার্ডের 5 তম সংস্করণে ব্যবহৃত হয় এবং আইএমও যাওয়ার সবচেয়ে নিরাপদতম উপায়টি ম্যানুয়ালি তারিখটি বিশ্লেষণ করে এখনও ব্যাপকভাবে সমর্থনযোগ্য নয় :(
সিএমএস

1
এটি খুব সহায়ক ছিল বন্ধু .. আপনাকে ধন্যবাদ .. :) অবশেষে বিন্যাসের জন্য ডেটজেস ব্যবহার করে শেষ হয়েছে।
শ্রীনাথ

ভবিষ্যতে তাদের জন্য, দয়া করে মনে রাখবেন যে ডেটজগুলি বেশিরভাগ ক্ষেত্রেই দুর্দান্ত, তবুও এটি সমস্ত তারিখের বিন্যাস সম্পর্কিত সমস্যাগুলি সমাধান করে না, বিশেষত সাফারি দিয়ে। এটি একটি পিটিএ তবে আপনার যদি এখনও সমস্যা হয় তবে এটি ম্যানুয়ালি করা ভাল।
নটলিজার্ডস

@ ডারিও তাই আমি আপনার উত্তরটি অনুসরণ করে চেষ্টা করেছি: "ওয়ার স্টার্ট = ডেট. পার্সি এক্স্যাক্ট (টাইমস্ট্যাম্প," ওয়াইওয়াইওয়াই-ডিডি-এমএম এইচ: মিমি: এসএস ");" টাইমস্ট্যাম্প "2016-01-28 00:00:00"। তবে এখন আমি ত্রুটিটি পেয়েছি, "ডেট.পার্সেক্স্যাক্ট কোনও ফাংশন নয়"। আপনি কি জানেন, এখানে কী হচ্ছে?
থ্রিক্স

5
আমার অনুরূপ ইস্যুটি সাফারি কোনও আরএফসি 822 টাইম জোনের ফর্ম্যাটে টাইমজোনটি কীভাবে পড়তে হবে তা না জানার কারণে হয়েছিল। আমি আইএসও 8601 ফর্ম্যাটটি ব্যবহার করে এটি ঠিক করতে সক্ষম হয়েছি। আপনার যদি তারিখের ফর্ম্যাটটির নিয়ন্ত্রণ থাকে তবে আমি এই কাজটি "yyyy-MM-dd'T'HH: মিমি: এসএসএসএক্সএক্সএক্সএক্স" এর সাথে পেয়েছি যা তৈরি করে ie "2018-02-06T20: 00: 00.000 +00: 00"। যে কোনও কারণে সাফারি "2018-02-06T20: 00: 00.000 + 0000" পড়তে পারে না, সময় অঞ্চল বিন্যাসে কোলনের অভাব লক্ষ্য করুন notice
ওলমস্টভ

224

আমার জন্য একটি নতুন লাইব্রেরি বাস্তবায়নের জন্য কেবল যেহেতু সাফারি সঠিকভাবে এটি করতে পারে না খুব বেশি এবং একটি রেজেক্স ওভারকিল হয়। এখানে অনেলাইনার :

console.log (new Date('2011-04-12'.replace(/-/g, "/")));

যদি স্ল্যাশ পাওয়া কেবল আমার সমস্যা ছিল তবে আমি আপনার উত্তরটি 'মেনে নিয়েছি' (যদিও এই প্রশ্নটি করার সময় আমার উদ্দেশ্য ছিল) my এখন যেহেতু আমি ডেটজেএস পেয়েছি, আমি আরও বেশি ব্যবহারকারী বান্ধব অভিজ্ঞতার জন্য এমএমএম ডিডি, ওয়াইওয়াইওয়াই ফর্ম্যাটটি প্রয়োগ করেছি !!!
শ্রীনাথ

13
এই এক লাইনের সাহায্যটি আমার প্রয়োজনের জন্য নিখুঁত ছিল! ধন্যবাদ!
সিরিল এন।

4
এটি আমার পক্ষেও যথেষ্ট সহজ ছিল। বিশ্বাস করা যায় না যে সাফারি পছন্দ করে না - তবে \\ কাজের সাথে একই ফর্ম্যাট। ধন্যবাদ এলজো এবং শ্রেনাথকে প্রশ্ন পোস্ট করার জন্য ধন্যবাদ
পিট

1
আমি মনে করি এটিই সেরা উত্তর যা আমি '-' এর পরিবর্তে / - / জি ভুলে যাই
জ্যাসেক পিটাল

12
একটি লাইব্রেরি বাস্তবায়ন না করার জন্য করতালি
লার্বি

55

আমি একই রকম সমস্যার মুখোমুখি হয়েছি। Date.Parse("DATESTRING")ক্রোমে কাজ করছিল (সংস্করণ 59.0.3071.115) তবে সাফারি নয় (সংস্করণ 10.1.1 (11603.2.5))

সাফারি:

Date.parse("2017-01-22 11:57:00")
NaN

ক্রোম:

Date.parse("2017-01-22 11:57:00")
1485115020000

আমার জন্য যে সমাধানটি কাজ করেছিল তা হ'ল ডেটস্ট্রিংয়ের স্থানটি প্রতিস্থাপন করে "T"। (উদাহরণ dateString.replace(/ /g,"T"):)

সাফারি:

Date.parse("2017-01-22T11:57:00")
1485086220000

ক্রোম:

Date.parse("2017-01-22T11:57:00")
1485115020000

নোট করুন যে সাফারি ব্রাউজারের প্রতিক্রিয়াটি ক্রোম ব্রাউজারে যে প্রতিক্রিয়া দেখা গেছে তার চেয়ে 8 ঘন্টা (28800000 মিমি) কম কারণ সাফারি স্থানীয় টিজেডে (যা ইউটিসির পিছনে আট ঘন্টা) প্রতিক্রিয়া ফিরিয়েছে

উভয় সময় একই টিজেডে পেতে

সাফারি:

Date.parse("2017-01-22T11:57:00Z")
1485086220000

ক্রোম:

Date.parse("2017-01-22T11:57:00Z")
1485086220000

বা আপনি যদি সাফারি এবং ক্রোমে উভয় তারিখ একই হতে না চান তবে আপনি নির্মাতা ব্যবহার করতে পারেন new Date(year, month, date, hours, minutes, seconds, milliseconds)। কনস্ট্রাক্টরের সেই উপাদানগুলি ব্যবহার করতে স্ট্রিংয়ের তারিখটিকে তার উপাদানগুলির একটি অ্যারে পার্স করুন। @ নিনজান্টজ আপনি যদি ভাবেন যে আপনার উত্তরটিতে এই জাতীয় উদাহরণ যুক্ত করা যেতে পারে।
h3dkandi

আপনি ইউটিসি-তে তারিখটি পেয়েছেন এবং স্থানীয় সময় না পেয়ে বিশেষভাবে কার্যকর নয়।
জোনাস অ্যাপলগ্রান

1
dateString.replace(/ /g,"T")কোডটির এই ম্যাজিক লাইনটি আমাকে গঠন করেছিল। :)
মাজদাক শোজাই

প্রতিস্থাপন (/ - / জি, '/')
জ্যাক হু

11

আমি সমস্যাটি সমাধান করার জন্য মুহূর্তটি ব্যবহার করি। উদাহরণ স্বরূপ

var startDate = moment('2015-07-06 08:00', 'YYYY-MM-DD HH:mm').toDate();

10

বেশিরভাগ ব্রাউজারে কোনও সমাধান কাজ করার জন্য, আপনার এই ফর্ম্যাটটি দিয়ে আপনার তারিখ-অবজেক্টটি তৈরি করা উচিত

(year, month, date, hours, minutes, seconds, ms)

উদাহরণ:

dateObj = new Date(2014, 6, 25); //UTC time / Months are mapped from 0 to 11
alert(dateObj.getTime()); //gives back timestamp in ms

আইই, এফএফ, ক্রোম এবং সাফারি দিয়ে দুর্দান্ত কাজ করে। এমনকি পুরানো সংস্করণ।

IE দেব কেন্দ্র: তারিখ অবজেক্ট (জাভাস্ক্রিপ্ট)

মজিলা দেব নেটওয়ার্ক: তারিখ


6

স্ট্রিংকে ডেট ফ্রোমেটে রূপান্তর করুন (আপনাকে সার্ভারের টাইমজোনটি জানতে হবে)

new Date('2015-06-16 11:00:00'.replace(/\s+/g, 'T').concat('.000+08:00')).getTime()  

যেখানে সার্ভার থেকে +08: 00 = টাইমজোন


এটি ডিএসটি আমলে নেয় না। টিজেড অফসেটটি ওঠানামা করতে পারে এবং এটি নিজেই তারিখের (এবং সময়) উপর নির্ভরশীল।
কোস্টা

5

আমার একই সমস্যা ছিল hen তখন আমি মুহূর্তগুলি ব্যবহার করি J জেসস। সমস্যাটি নিখোঁজ হয়ে গেছে।

কোনও স্ট্রিং থেকে একটি মুহুর্ত তৈরি করার সময়, আমরা প্রথমে পরীক্ষা করে দেখি ISO 8601 ফর্ম্যাটগুলির সাথে স্ট্রিংটি মেলে কিনা, তারপরে যদি কোনও পরিচিত ফর্ম্যাট না পাওয়া যায় তবে নতুন তারিখ (স্ট্রিং) এ ফিরে যান।

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

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

যেমন

var date= moment(String);

3

যদিও আপনি আশা করতে পারেন যে ব্রাউজারগুলি আইএসও 8601 (অথবা এর তারিখের কেবলমাত্র সাবসেটগুলি) সমর্থন করবে , তবে এটি ক্ষেত্রে নেই। আমি যে সকল ব্রাউজারগুলি জানি (কমপক্ষে আমি যে ইউএস / ইংলিশ স্থানীয় ভাষা ব্যবহার করি সেগুলিতে) ভয়ঙ্কর মার্কিন MM/DD/YYYYফর্ম্যাটটি পার্স করতে সক্ষম ।

আপনার যদি ইতিমধ্যে তারিখের অংশ থাকে তবে আপনি পরিবর্তে ডেট.ইউটিসি () ব্যবহার করার চেষ্টা করতে পারেন । যদি আপনি এটি না করেন তবে আপনাকে অবশ্যই YYYY-MM-DDফর্ম্যাটটি ব্যবহার করতে হবে, আমি আপনাকে জানতাম যে টুকরো টুকরো টুকরো টুকরো তা পার্স করার জন্য একটি নিয়মিত অভিব্যক্তি ব্যবহার করার পরামর্শ দিচ্ছি এবং তারপরে সেগুলিতে প্রেরণ করব Date.UTC()


আমার ধারণা স্ট্রিং পার্সিংটি যাবার উপায় :(
শ্রীনাথ

1

নীচের ফর্ম্যাটটি ব্যবহার করুন, এটি সমস্ত ব্রাউজারগুলিতে কাজ করবে

var year = 2016;
var month = 02;           // month varies from 0-11 (Jan-Dec)
var day = 23;

month = month<10?"0"+month:month;        // to ensure YYYY-MM-DD format
day = day<10?"0"+day:day;

dateObj = new Date(year+"-"+month+"-"+day);

alert(dateObj); 

// আপনার আউটপুটটি এই "মার্চ 23 মার্চ ২০১ 2016 00:00:00 GMT + 0530 (IST)" এর মতো দেখাবে

// নোট করুন এটি ইউএসটি টাইমজোনকে রূপান্তর করতে আইটিএস দ্বারা চিহ্নিত এই ক্ষেত্রে বর্তমান টাইমজোনটিতে থাকবে

alert(dateObj.toUTCSting);

// আপনার আউটপুট এখন এই "মঙ্গল, 22 মার্চ 2016 18:30:00 GMT" পছন্দ করবে

নোট করুন যে এখন ডেটঅবিজে GMT ফর্ম্যাটে সময় দেখায়, এছাড়াও নোট করুন যে তারিখ এবং সময় একই সাথে পরিবর্তিত হয়েছে।

"টুএসটিএসটিং" ফাংশন গ্রিনিচ মেরিডিয়ানে সম্পর্কিত সময়টি পুনরুদ্ধার করে। গ্রীনউইচ মেরিডিয়ান টাইমজোনকে আপনার বর্তমান টাইমজোনটির মধ্যে সময়ের পার্থক্য স্থাপন করে এটি সম্পাদন করে।

উপরের ক্ষেত্রে, রূপান্তর হওয়ার আগের সময়টি ছিল ২০১ 2016 সালের ২৩ শে মার্চ, 00:00 ঘন্টা এবং মিনিট And কেস) সময়টি 2016 সালের 22 শে মার্চ 18.30 ঘন্টা (প্রথমবারের ঠিক ঠিক 5.30 ঘন্টা পিছনে) প্রতিবিম্বিত করে।

যে কোনও তারিখের অবজেক্টকে টাইমস্ট্যাম্পে রূপান্তর করতে আপনি ব্যবহার করতে পারেন

alert(dateObj.getTime());

// আউটপুট এই "1458671400000" এর মতো কিছু দেখতে পাবে

এটি আপনাকে সেই সময়ের অনন্য টাইমস্ট্যাম্প দেবে



1

এটি করার সর্বোত্তম উপায় হল নিম্নলিখিত বিন্যাসটি ব্যবহার করে:

new Date(year, month, day, hours, minutes, seconds, milliseconds)
var d = new Date(2018, 11, 24, 10, 33, 30, 0);

এটি সমস্ত ব্রাউজারে সমর্থিত এবং আপনাকে কোনও সমস্যা দেবে না। দয়া করে নোট করুন যে মাসগুলি 0 থেকে 11 পর্যন্ত লেখা রয়েছে।


সাফারি এবং ক্রোমে ভাল কাজ করে তবে ফায়ারফক্সে এখনও সমস্যা রয়েছে। সাফারি: পরিবর্তে তারিখ = নতুন তারিখ (2018,06,08,19,17) রবিবার জুলাই 08 2018 19:17:00 GMT + 0800 (+08) ক্রোম: var তারিখ = নতুন তারিখ (2018,06,08,19, 17) সান জুলাই 2018 2018 19:17:00 GMT + 0800 (মালয়েশিয়ার সময়) ফায়ারফক্স: বিভিন্ন তারিখ = নতুন তারিখ (2018,06,08,19,17) তারিখ 2018-07-08T11: 17: 00.000Z
বিরানচি

0

সাফারিতে একই সমস্যার মুখোমুখি হচ্ছে এবং এটি ওয়েব পৃষ্ঠায় সন্নিবেশ করিয়ে সমাধান করা হয়েছিল

 <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Intl.~locale.en"></script> 

আশা করি এটি আপনার ক্ষেত্রেও কার্যকর হবে

ধন্যবাদ


আপনি কেন মনে করেন এটি কাজ করবে? আমি স্ক্রিপ্টটি দেখেছি এবং এটি ডেট অবজেক্টের পদ্ধতিগুলিকে ওভাররাইড করে বলে মনে হচ্ছে না। আমি এখানে গিয়েছিলাম: polyfill.io/v3/url-builder এবং তারিখগুলি বিশ্লেষণ সম্পর্কে কিছুই নেই বলে মনে হয়।
কস্টা

0

যেমন @ এনজান্টজ পূর্বে উল্লেখ করেছেন, ডেট. পার্স () ব্যবহার করা আমার পক্ষে সাফারিতে কাজ করে না। কিছুটা গবেষণার পরে, আমি শিখেছি যে ফাইলের অবজেক্টের জন্য সর্বশেষ তারিখরূপিত সম্পত্তি হ্রাস করা হয়েছে, এবং আর সাফারি দ্বারা সমর্থিত নয়। ফাইলের অবজেক্টের সর্বশেষ রূপান্তরিত সম্পত্তিটি ব্যবহার করা আমার সমস্যার সমাধান করেছে। খারাপ তথ্য অনলাইনে পাওয়া গেলে অবশ্যই তা অপছন্দ করবেন।

যারা এই পোস্টে অবদান রেখেছেন তাদের সকলকে ধন্যবাদ, যা আমার সমস্যা সম্পর্কে আমার জানার জন্য প্রয়োজনীয় পথে যেতে সাহায্য করেছিল। এই তথ্যটি না থাকলে আমি সম্ভবত আমার মূল সমস্যাটি বের করতে পারতাম না। হতে পারে এটি আমার অনুরূপ পরিস্থিতিতে অন্য কাউকে সহায়তা করবে।


0

আমি সাফারি ব্রাউজারেও একই সমস্যার মুখোমুখি হচ্ছি

var date = new Date("2011-02-07");
console.log(date) // IE you get ‘NaN’ returned and in Safari you get ‘Invalid Date’

সমাধান এখানে:

var d = new Date(2011, 01, 07); // yyyy, mm-1, dd  
var d = new Date(2011, 01, 07, 11, 05, 00); // yyyy, mm-1, dd, hh, mm, ss  
var d = new Date("02/07/2011"); // "mm/dd/yyyy"  
var d = new Date("02/07/2011 11:05:00"); // "mm/dd/yyyy hh:mm:ss"  
var d = new Date(1297076700000); // milliseconds  
var d = new Date("Mon Feb 07 2011 11:05:00 GMT"); // ""Day Mon dd yyyy hh:mm:ss GMT/UTC 

0

এটি সেরা সমাধান নয়, যদিও আমি কেবল ত্রুটিটি ধরা এবং বর্তমান তারিখটি ফেরত পাঠাই। আমি ব্যক্তিগতভাবে সাফারি সমস্যাগুলি সমাধান না করার মতো বোধ করি, যদি ব্যবহারকারীরা কোনও শ * টি অ-মানের কমপ্লায়েন্ট ব্রাউজার ব্যবহার করতে চান - তাদের বিড়বিড় করে বাঁচতে হবে।

function safeDate(dateString = "") {
  let date = new Date();
  try {
    if (Date.parse(dateString)) {
      date = new Date(Date.parse(dateString))
    }
  } catch (error) {
    // do nothing.
  }
  return date;
}

আমি আপনার ব্যাকএন্ডের আইএসও তারিখগুলি প্রেরণের পরামর্শ দিচ্ছি।


সমস্ত শ্রদ্ধার সাথে, যখন আপনি বোঝাতে চাইছেন ব্যবহারকারীদের আপনার কোড লিখেছেন সেই ব্রাউজারটি ব্যবহার করতে হবে, এটি সাধারণ অর্থে খারাপ দেখাচ্ছে। এটি আমাদের ব্যবহারের ক্ষেত্রে এবং লক্ষ্য দর্শকদের উপরও নির্ভর করে - যদি কোনও বাজার প্রচুর বাজারের জন্য ব্যবহার করা হয় তবে আমরা খুব কমপক্ষে IE10 কে সমর্থন করব। আমি নিশ্চিত যে এমএসের কেউ যখন ইন্টারনেট এক্সপ্লোরারের জন্য ডিজাইন / কোডিং করছিলেন তখন তাদেরও একই ধারণা ছিল। আমরা এখন জানি যে এটি সম্পর্কে এখন কীভাবে কথা বলা হয়।
শ্রীনাথ

-1

'মিমি / ডিডি / ইয়ে' ফর্ম্যাটটি ব্যবহার করুন। উদাহরণস্বরূপ: - নতুন তারিখ ('02 / 28/2015 ')। এটি সমস্ত ব্রাউজারে ভাল কাজ করে।

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