মোমেন্ট.জেএস ব্যবহার করে তারিখ এবং বিয়োগের দিনগুলি ফর্ম্যাট করুন


121

আমি গতকালের তারিখটি DD-MM-YYYYমোমেন্ট.জেএস ব্যবহার করে ফর্ম্যাটটিতে রাখতে চাই। সুতরাং আজ যদি 15-04-2015 হয় তবে আমি একটি দিন বিয়োগ করতে চাই এবং 14-4-2015 করব।

আমি এর মতো কয়েকটি সংমিশ্রণ চেষ্টা করেছি:

startdate = moment().format('DD-MM-YYYY');
startdate.subtract(1, 'd');

এবং এই:

startdate = moment().format('DD-MM-YYYY').subtract(1, 'd');

এবং এটিও:

startdate = moment();
startdate.subtract(1, 'd');
startdate.format('DD-MM-YYYY')

তবে আমি তা পাচ্ছি না ...


বিন্যাস করার আগে আপনি কি বিয়োগের চেষ্টা করেছেন? এটি
ফর্ম্যাট করা

moment ()। বিয়োগ (10, "দিন") এর পরিবর্তে কেবল "d" হতে পারে?
লিওপিক

"হোল্ড" কালকের হিসেবে তারিখ তারিখ , এবং যখন আপনি এটি প্রদর্শন করার প্রয়োজন হয়, বিন্যস্ত স্ট্রিং সেটিকে চালু করুন।
পয়েন্টি

@ নিকডুগার আমি এই প্রশ্নটিতে একটি ভুল করেছিলাম শেষ চেষ্টাটি স্টার্টডেট বলতে হবে = মুহূর্ত (); প্রথম লাইনে আইভ এখন এটি সম্পাদনা করে ধন্যবাদ
বিউমন্ডো

format()এটি একটি স্ট্রিং করে ফাংশন। আপনার শেষটি করা উচিত।
jwatts1980

উত্তর:


210

আপনার একাধিক অদ্ভুত ঘটনা ঘটছে। প্রথমটি আপনার পোস্টে সম্পাদনা করা হয়েছে, তবে পদ্ধতিগুলি যেভাবে ডাকা হচ্ছে তার সাথে এটি করা দরকার।

.formatএকটি স্ট্রিং প্রদান করে। স্ট্রিংয়ের কোনও subtractপদ্ধতি নেই।

দ্বিতীয় সমস্যাটি হ'ল আপনি দিনটি বিয়োগ করছেন তবে বাস্তবে এটি পরিবর্তনশীল হিসাবে সংরক্ষণ করছেন না।

আপনার কোডটি তখন দেখতে হবে:

var startdate = moment();
startdate = startdate.subtract(1, "days");
startdate = startdate.format("DD-MM-YYYY");

তবে, আপনি একসাথে এটি চেইন করতে পারেন; এটি দেখতে এই রকম হবে:

var startdate = moment().subtract(1, "days").format("DD-MM-YYYY");

পার্থক্যটি হ'ল আমরা স্টার্টেটে যে পরিবর্তনগুলি করছি আপনি স্টার্টেটে সেট করছি, কারণ মুহূর্তটি ধ্বংসাত্মক।


13
moment.js subtractআসলে ধ্বংসাত্মক। "সময় বিয়োগ করে মূল মুহূর্তটিকে রূপান্তরিত করে"। এখানে দেখুন: momentjs.com/docs/#/manipulating/subtract
docksteaderluke


5

এটা চেষ্টা কর:

var duration = moment.duration({'days' : 1});
moment().subtract(duration).format('DD-MM-YYYY');

এটি আপনাকে দেবে 14-04-2015- আজ 15-04-2015

বিকল্প হিসাবে যদি আপনার মুহুর্তের সংস্করণটি ২.৮.০ এর চেয়ে কম হয়, আপনি ব্যবহার করতে পারেন:

startdate = moment().subtract('days', 1).format('DD-MM-YYYY');

এর পরিবর্তে:

startdate = moment().subtract(1, 'days').format('DD-MM-YYYY');


2

আমি মনে করি আপনি এটি শেষ চেষ্টাতে পেয়েছেন, আপনার কেবল স্ট্রিংটি ধরতে হবে .. ক্রোমের কনসোলে ..

startdate = moment();
startdate.subtract(1, 'd');
startdate.format('DD-MM-YYYY');
"14-04-2015"

startdate = moment();
startdate.subtract(1, 'd');
myString = startdate.format('DD-MM-YYYY');
"14-04-2015"
myString
"14-04-2015"

2

কৌণিক মুহূর্তে = "^ 1.3.0"

moment('15-01-1979', 'DD-MM-YYYY').subtract(1,'days').format(); //14-01-1979
or
moment('15-01-1979', 'DD-MM-YYYY').add(1,'days').format(); //16-01-1979
``




2
var date = new Date();

var targetDate = moment(date).subtract(1, 'day').toDate(); // date object

এখন, আপনি কীভাবে এই তারিখটি দেখতে চান তা আপনি ফর্ম্যাট করতে পারেন বা আপনি এই তারিখটিকে অন্য কোনওটির সাথে তুলনা করতে পারেন etc.

টুডেট () ফাংশন হল পয়েন্ট।

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