Moment.js এ কেবলমাত্র তারিখের তুলনা কীভাবে করা যায়


107

আমি moment.js এ নতুন। আমার একটি তারিখ অবজেক্ট রয়েছে এবং এর সাথে কিছুটা সময় যুক্ত রয়েছে associated আমি কেবল সেই তারিখটি তুলনা করার সময় বাদ দিয়ে আজকের তারিখের চেয়ে বড় বা সমান কিনা তা খতিয়ে দেখতে চাই।

 var dateToCompare = 2015-04-06T18:30:00.000Z

আমি কেবল পরীক্ষা করতে চাই যে ডেটটোকম্পার আজকের তারিখের চেয়ে সমান বা বড়। আমি isSame of moment.js এর পরীক্ষা করেছি, তবে এটি স্ট্রিং এবং কেবল তারিখের অংশ বলে মনে হচ্ছে। তবে আমি আমার তারিখটিকে স্ট্রিংয়ে রূপান্তর করতে বা এটিকে আরও চালিত করতে চাই না। কারণ আমি আশঙ্কা করছি যে তারিখটিকে স্ট্রিংয়ে রূপান্তর করার সময় জাভাস্ক্রিপ্ট কিছু অপ্রত্যাশিত কাজ করতে পারে (যেমন অফসেট বা ডিএসটি যোগ করা ইত্যাদি), অথবা আমার ভুল হতে পারে।

দস্তাবেজ থেকে নমুনা isSame ()

moment('2010-10-20').isSame('2010-10-20');

এছাড়াও আমি এক বিবৃতি হিসাবে মিলিত isSame () এবং isAfter () এর মতো কিছু খুঁজছি।

আমার কেবলমাত্র moment.js ব্যবহার করে তুলনা করা দরকার lease দয়া করে সরল জাভাস্ক্রিপ্টের তারিখ তুলনাটি প্রস্তাব করবেন না।

উত্তর:


183

দস্তাবেজগুলি বেশ স্পষ্ট যে গ্রানুলারিটি নির্দিষ্ট করতে আপনি দ্বিতীয় প্যারামিটারে পাস করেছেন।

আপনি যদি গ্রানুলারিটিটি মিলিসেকেন্ড ব্যতীত অন্য ইউনিটে সীমাবদ্ধ করতে চান তবে ইউনিটগুলিকে দ্বিতীয় প্যারামিটার হিসাবে পাস করুন।

moment('2010-10-20').isAfter('2010-01-01', 'year'); // false
moment('2010-10-20').isAfter('2009-12-31', 'year'); // true

দ্বিতীয় প্যারামিটার যেমন নির্ভুলতা নির্ধারণ করে এবং চেক করার জন্য একটিমাত্র মানই নয়, দিনটি ব্যবহার করে বছর, মাস এবং দিন পরীক্ষা করা হবে।

আপনার ক্ষেত্রে আপনি 'day'দ্বিতীয় প্যারামিটার হিসাবে পাস হবে ।


1
ধন্যবাদ! মনে হচ্ছে আমাকে স্ট্রিংয়ে রূপান্তর করতে হবে না। তবে কি আমাদের কাছে একই () এবং isAfter () এর জন্য কোনও সাধারণ পদ্ধতি রয়েছে
নুবজিক

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

@ কাবীরবৈধ্যা, বড় আকারের অযাচিত সম্পাদনা করার আগে, প্রশ্নোত্তর সম্পর্কিত প্রশ্ন ও উত্তর সম্পর্কে মন্তব্য পোস্ট করা ভদ্র বলে বিবেচিত হয়। আমি মনে করি না যে আপনি সম্পাদনাগুলি প্রয়োজনীয় ছিল তাই আমি সেগুলি আবার ঘুরিয়ে দিয়েছি। যদি আপনি মনে করেন যে তথ্যটি গুরুত্বপূর্ণ ছিল তবে দয়া করে আপনার নিজের উত্তর পোস্ট করার বিষয়টি বিবেচনা করুন।
zzzzBov

4
কেবলমাত্র পরিপূরক হিসাবে: "দ্বিতীয় প্যারামিটারটি যথার্থতা নির্ধারণ করে এবং কেবল একটি মান পরীক্ষা করে পরীক্ষা করে না, দিন ব্যবহার করে বছর, মাস এবং দিন পরীক্ষা করা হবে" "
ইভিভানস

6
@NoobGeek এখন সংস্করণ ২.১০. from থেকে সাম্যআরব্রোপার () এবং isSameOrAfter () রয়েছে।
হোয়াইট হটলভটাইজার


6

আমার ক্ষেত্রে আমি 2 তারিখের তুলনা করার জন্য কোড অনুসরণ করেছি এটি আপনাকে সহায়তা করবে ...

var date1 = "2010-10-20";
var date2 = "2010-10-20";
var time1 = moment(date1).format('YYYY-MM-DD');
var time2 = moment(date2).format('YYYY-MM-DD');
if(time2 > time1){
	console.log('date2 is Greter than date1');
}else if(time2 > time1){
	console.log('date2 is Less than date1');
}else{
	console.log('Both date are same');
}
<script src="https://momentjs.com/downloads/moment.js"></script>


6

আপনি startOf('day')ঠিক তারিখ তুলনা করতে পদ্ধতি ব্যবহার করতে পারেন

উদাহরণ:

var dateToCompare = moment("06/04/2015 18:30:00");
var today = moment(new Date());

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