জাভাস্ক্রিপ্টে মাসের শেষ দিন গণনা করুন


277

আপনি প্রদান তাহলে 0যেমন dayValueমধ্যে Date.setFullYearআপনি আগের মাসের শেষ দিনে পাবেন:

d = new Date(); d.setFullYear(2008, 11, 0); //  Sun Nov 30 2008

মজিলায় এই আচরণের উল্লেখ রয়েছে । এটি কি একটি নির্ভরযোগ্য ক্রস ব্রাউজার বৈশিষ্ট্য বা আমার বিকল্প পদ্ধতির দিকে নজর দেওয়া উচিত?


আপনি নির্দিষ্ট মাসের শেষ দিনটি বোঝাতে চাইছেন না? নভেম্বর মাসে 30 এবং অক্টোবরে 31 দিন রয়েছে।
ক্রিস সেররা

16
মাসগুলি জাভাস্ক্রিপ্টে শূন্য-ভিত্তিক তাই 11 ডিসেম্বর
গ্রেগ

2
@ দ্য ক্লাউডলেসস্কি - আপনার কনসোলে এটি ব্যবহার করে দেখুন ... (২০০৮,১১,০) ডিসেম্বরের শূন্য-তম দিন, এবং তাই নভেম্বরের শেষ দিন
কেন

@ কেন - হ্যাঁ - আমি বুঝতে পারি না যে এখানে "0" রয়েছে:) ... এটি খুব সকালে হয়েছিল।
দ্য ক্লাউডলেসস্কি

উত্তর:


424
var month = 0; // January
var d = new Date(2008, month + 1, 0);
alert(d); // last day in January

IE 6:                     Thu Jan 31 00:00:00 CST 2008
IE 7:                     Thu Jan 31 00:00:00 CST 2008
IE 8: Beta 2:             Thu Jan 31 00:00:00 CST 2008
Opera 8.54:               Thu, 31 Jan 2008 00:00:00 GMT-0600
Opera 9.27:               Thu, 31 Jan 2008 00:00:00 GMT-0600
Opera 9.60:               Thu Jan 31 2008 00:00:00 GMT-0600
Firefox 2.0.0.17:         Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)
Firefox 3.0.3:            Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)
Google Chrome 0.2.149.30: Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)
Safari for Windows 3.1.2: Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)

আউটপুট পার্থক্য toString()বাস্তবায়নের পার্থক্যের কারণে হয় , তারিখগুলি পৃথক হওয়ার কারণে নয়।

অবশ্যই, কেবল কারণ উপরোক্ত ব্রাউজারগুলি 0 আগের মাসের শেষ দিন হিসাবে 0 ব্যবহার করে তা বোঝায় না যে তারা এটি করা চালিয়ে যাবে, বা তালিকাভুক্ত ব্রাউজারগুলি এটি করবে না, তবে এটি বিশ্বাস করে বিশ্বাসযোগ্যতা দেয় যে এটি কাজ করবে belief প্রতিটি ব্রাউজারে একইভাবে।


19
এটি পুরোপুরি ভালভাবে কাজ করছে বলে মনে হচ্ছে। কৌতূহলের বাইরে আপনি এই সমস্ত ইঞ্জিনে জাভাস্ক্রিপ্ট চালানোর জন্য কী ব্যবহার করছেন? সবকিছু সেট আপ বা কোনও ধরণের সরঞ্জাম পেয়েছেন?
নিয়নস্কি

5
আসল দিনটি পেতে আপনি d.getDate () ব্যবহার করতে পারেন।
21 'এ rynop

35
"কেবলমাত্র ব্রাউজারগুলি ... আগের মাসের শেষ দিন হিসাবে 0 ব্যবহার করে এর অর্থ এই নয় যে তারা এটি করা চালিয়ে যাবে"। হ্যাঁ এটি করে, ইসিএমএ-262 দ্বারা তাদের এটি করা দরকার।
রবজি

3
দয়া করে মনে রাখবেন ব্যবহার new Dateহয় তাই অনেক ধীর অন্যান্য হিসাব পদ্ধতির চেয়ে এটি এমনকি জন্য perf চার্ট আপ প্রদর্শন করা হয় না : jsperf.com/days-in-month-perf-test/6
কোডিং Gone

4
এটি আমার জন্য ক্রোম 48.0.2564.116 এ কাজ করে না। সম্ভবত, এই পথটি 'স্ট্যান্ডার্ড' হওয়া থেকে বিরত রয়েছে।
xarlymg89

77

আমি পরের মাসের প্রথম দিনটির সাথে একটি মধ্যবর্তী তারিখ ব্যবহার করব এবং আগের দিন থেকে তারিখটি ফিরিয়ে দেব:

int_d = new Date(2008, 11+1,1);
d = new Date(int_d - 1);

ইসমাস্ক্রিপ্ট স্পেসিফিকেশন অনুসারে , আপনি চিহ্নিত হিসাবে "তারিখ" কনস্ট্রাক্টর ব্যবহার করা বৈধ। "মেকডে" ফাংশন দ্বারা নির্দিষ্ট করা অ্যালগরিদম অনুসরণ করার পরে এটি সমস্যাটি সুন্দরভাবে পরিচালনা করা উচিত।
পাবলো ক্যাবেরা

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

1
আমি বাগটি প্রতিশোধ নিতে পারি না। এটি আমাকে সমস্ত ব্রাউজারে সঠিক তারিখ দেয়:today = new Date(); new Date(today.getFullYear(), today.getMonth()+1, 0).toString();
ওরাড

এটি মিলিসেকেন্ডে নির্ধারিত সময়ের সাথে মাসের শেষ দিনের জন্য একটি তারিখ অবজেক্ট তৈরি করে (যেমন 23: 59: 59.999)। ওপিতে কেবল পদ্ধতিটি ব্যবহার করা এবং অতিরিক্ত পদক্ষেপ এবং তারিখ অবজেক্টটি সংরক্ষণ করা ভাল।
রবজি

@ রবজি: আমি রাজি! যদিও আমার সমাধানটি বোঝা সহজ হতে পারে, যেহেতু মাসের শেষ দিনের জন্য 0 ব্যবহারের ধারণাটি আমার মতে কিছুটা ক্লানকি অনুভব করে।
করলিপপিন্স

72

আমি এটি আমার জন্য সেরা সমাধান বলে মনে করি। তারিখ অবজেক্টটি এটি আপনার জন্য গণনা করুন।

var today = new Date();
var lastDayOfMonth = new Date(today.getFullYear(), today.getMonth()+1, 0);

দিনের প্যারামিটার 0 তে সেট করা মানে মাসের প্রথম দিনের চেয়ে একদিন কম যা পূর্ববর্তী মাসের শেষ দিন।


1
এটি ঠিক আছে, আমি লক্ষ্য করেছি যে নির্বাচিত উত্তরটি একই প্রস্তাব করছে। এটি সবচেয়ে দ্রুত এবং সবচেয়ে নির্ভরযোগ্য উপায় এবং ক্যালেন্ডারের প্রকার নির্বিশেষে কাজ করে। উদাহরণস্বরূপ, যদি তারিখ গ্রেগরিয়ান ক্যালেন্ডার ব্যতীত অন্য কিছু প্রয়োগ করে তবে এটি কার্যকর হবে। তারিখ অবজেক্টের গ্রেগরিয়ান অ-প্রয়োগের উদাহরণের জন্য intldate.codeplex.com দেখুন ।
ওরাড

1
@ অরড: "দ্রুততম" কিছু দাবি করার বিষয়ে সতর্ক থাকুন কারণ এই পদ্ধতিটি কিছু বিকল্পের তুলনায় যথেষ্ট ধীর। ব্যবহার new Dateকরা এত ধীরে ধীরে এটি পারফেক্ট চার্টেও দেখা যায় না : jsppha.com/days-in-month-perf-test/6
কোডিং হয়ে গেছে

পুনঃটুইট আমি ধরে নিয়েছিলাম যে এটি স্থানীয় কারণ এটি দ্রুত ছিল was তবে আপনি ঠিক বলেছেন, এটি দ্রুত নয়। আসলে এটি পরীক্ষা করার জন্য ধন্যবাদ। যাইহোক, এই সমাধানটি আমার পক্ষে সবচেয়ে ভাল কাজ করে কারণ এটি সংক্ষিপ্ত এবং পাঠযোগ্য এবং অন্যান্য সমস্ত সমাধানগুলি গ্রেগরিয়ান ক্যালেন্ডারের সাথে আবদ্ধ নয় unlike
ওরাড

"অন্যান্য সমস্ত সমাধানের বিপরীতে গ্রেগরিয়ান ক্যালেন্ডারে আবদ্ধ নয়" !!! এই অ্যালগরিদম আমার 1 বছর থেকে 4000 বছর পর্যন্ত একই মানগুলি ফেরত দেয়। jsfiddle.net/2973x9m3/3 আপনি কোন অতিরিক্ত তারিখের সীমাটি দাবি করছেন যে এটি সমর্থন করবে (এটি কার্যকর হবে)? :)
কোডিং হয়ে গেছে

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

25

কম্পিউটারের পদগুলিতে, new Date()এবং regular expressionসমাধানগুলি ধীর! আপনি যদি একটি সুপার-ফাস্ট (এবং সুপার ক্রিপ্টিক) ওয়ান-লাইনার চান, তবে এটি ব্যবহার করে দেখুন (ধরে নিচ্ছেন mযে Jan=1ফর্ম্যাটে রয়েছে)। আমি সেরা পারফরম্যান্স পেতে বিভিন্ন কোড পরিবর্তন চেষ্টা করে চলেছি।

আমার বর্তমানের দ্রুততম সংস্করণ:

এই সম্পর্কিত প্রশ্নটি দেখার পরে লিপ ইয়ার চেক বিটওয়াইস অপারেটরগুলি (আশ্চর্যজনক গতি) ব্যবহার করে এবং 25 এবং 15 ম্যাজিক নম্বরটি কী উপস্থাপন করে তা আবিষ্কার করার পরে, আমি উত্তরগুলির এই অনুকূলিতকরণ সংকর নিয়ে এসেছি:

function getDaysInMonth(m, y) {
    return m===2 ? y & 3 || !(y%25) && y & 15 ? 28 : 29 : 30 + (m+(m>>3)&1);
}

বিট-শিফটিংয়ের ফলে এটিকে স্পষ্টতই ধরে নেওয়া যায় যে আপনার myপ্যারামিটারগুলি উভয়ই পূর্ণসংখ্যা, কারণ স্ট্রিং হিসাবে সংখ্যাগুলি পাস করার ফলে অদ্ভুত ফলাফল হতে পারে।

জেএসফিডাল: http://jsfiddle.net/TrueBlueAussie/H89X3/22/

জেএসপিফারফের ফলাফল: http://jsperf.com/days-in-month-head-to-head/5

কিছু কারণে, (m+(m>>3)&1)অধিক কার্যকরী হয় (5546>>m&1)উপর প্রায় সমস্ত ব্রাউজার।

গতির একমাত্র আসল প্রতিযোগিতাটি হ'ল @ গীতারল্যাব থেকে, সুতরাং আমি আমাদের পরীক্ষার জন্য মাথা থেকে মাথা JSPerf তৈরি করেছি: http://jsperf.com/days-in-month-head-to-head/5


এটি আমার লিপ বছরের উত্তরের উপর ভিত্তি করে এখানে কাজ করে: জাভাস্ক্রিপ্ট লিপ ইয়ারটি এই উত্তরটি সন্ধান করতে এখানে লিপ ইয়ার বিটওয়াইজ অপারেটর (আশ্চর্যজনক গতি) এবং নীচের বাইনারি যুক্তি ব্যবহার করে পরীক্ষা করুন

বাইনারি মাসগুলিতে একটি দ্রুত পাঠ:

আপনি যদি বাইনারিটিতে পছন্দসই মাসগুলির (জানুয়ারী = 1) সূচকটি ব্যাখ্যা করেন তবে আপনি খেয়াল করতে পারেন যে 31 দিনের সাথে কয়েক মাসের মধ্যে বিট 3 ক্লিয়ার এবং বিট 0 সেট, বা বিট 3 সেট এবং বিট 0 ক্লিয়ার রয়েছে।

Jan = 1  = 0001 : 31 days
Feb = 2  = 0010
Mar = 3  = 0011 : 31 days
Apr = 4  = 0100
May = 5  = 0101 : 31 days
Jun = 6  = 0110
Jul = 7  = 0111 : 31 days
Aug = 8  = 1000 : 31 days
Sep = 9  = 1001
Oct = 10 = 1010 : 31 days
Nov = 11 = 1011
Dec = 12 = 1100 : 31 days

এর অর্থ আপনি >> 3মূলটির সাথে 3 টির সাথে মানটি স্থান পরিবর্তন করতে পারবেন , মূলটির সাথে বিটগুলি এক্সওর করুন ^ mএবং ফলাফলটি ব্যবহার করে 1বা 0 বিট পজিশনে 0 ব্যবহার করে দেখুন কিনা & 1। দ্রষ্টব্য: এটি দেখা যাচ্ছে +XOR ( ^) এর চেয়ে কিছুটা দ্রুত এবং (m >> 3) + mবিট 0-তে একই ফলাফল দেয়।

জেএসপিফারফের ফলাফল : http://jsperf.com/days-in-month-perf-test/6


আসল অ্যালগো এবং সম্পূর্ণ ইতিহাস (মন্তব্য দেখুন): স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 1810984 / number- of-days-in-any-
-মাস

1
@ গীতারল্যাব: আপনি ইতিমধ্যে একটি উল্লেখ পেয়েছেন এবং এটি আপনার মতো ঠিক কখনই হয় নি, আপনি জানেন। একে অপরের অ্যালগরিদমগুলির ক্রমবর্ধমান আপডেট করা "আসল অ্যালগো" সমান নয়। আমি এই উত্তরেও প্রচুর প্রচেষ্টা করেছি: পি
গন কোডিং

@ ট্রু ব্লুআউসি: আমি কেবল ভবিষ্যতের পাঠকদেরকে আমাদের আরও তথ্যের ধনটির দিকে ইশারা করতে চেয়েছিলাম (আমি আমাদের উভয় উত্তরকে সংযুক্ত করেছি যাতে যে কেহ কেয়ার করে বা অন্যটি নিতে চায় সে আমাদের সম্পাদনা-ইতিহাসের দিকে নজর দিতে পারে যে আমরা কখন এবং কেন করেছি )। আমি এখনও আমার প্রতিযোগিতার পুরো দিনটি স্নেহের সাথে স্মরণ করি! :)আমি পোস্ট করা প্রথম উত্তর-সংস্করণটিতে সত্যই একটি বন্ধনী বিন্যাসিত সেট ছিল, যা সরানো হয়েছিল (যার জন্য আমি আপনাকে জমা দিয়েছি) যাতে আমরা একটি চরিত্র শেভ করতে পারি এবং এটি দিয়ে শেষ করতে পারি। আমি এখনও সেই মজার দিনের জন্য কৃতজ্ঞ, চিয়ার্স!
গীতারল্যাব

1
দয়া করে উল্লেখ করুন yএবং mভেরিয়েবলগুলি স্ট্রিং না হয়ে পূর্ণসংখ্যা হতে হবে! এটি ফেব্রুয়ারির জন্য উদাহরণস্বরূপ ভুল গণনার কারণ হয় 30 ফেরত আসে। parseInt()এটি কাজ করার জন্য আমাকে ফাংশন ব্যবহার করতে হয়েছিল।
পরিবর্তে

21

আমার সহকর্মী নিম্নলিখিতটিকে হোঁচট খাচ্ছেন যা এর চেয়ে সহজ সমাধান হতে পারে

function daysInMonth(iMonth, iYear)
{
    return 32 - new Date(iYear, iMonth, 32).getDate();
}

http://snippets.dzone.com/posts/show/2099 থেকে চুরি হয়েছে


2
নাইজেল এটিকে আরও সংক্ষিপ্ত সমাধানে পরিবর্তন করেছেন। তার পোস্ট দেখুন।
ওড়াদ

মাস শূন্য-ভিত্তিক, অর্থাত, জানু = ০। GetMonth হিসাবে একই ()।
মুস

16

লেব্রিজ দ্বারা প্রদত্ত সমাধানে সামান্য পরিবর্তন :

function daysInMonth(iMonth, iYear)
{
    return new Date(iYear, iMonth, 0).getDate();
}

এটি return new Date(iYear, 1 + iMonth, 0).getDate();@ লেব্রিজের দ্রবণের সমতুল্য হওয়া উচিত ।
মূস

6

আমাকে সম্প্রতি কিছু অনুরূপ করতে হয়েছিল, এটিই আমি এনেছি:

/**
* Returns a date set to the begining of the month
* 
* @param {Date} myDate 
* @returns {Date}
*/
function beginningOfMonth(myDate){    
  let date = new Date(myDate);
  date.setDate(1)
  date.setHours(0);
  date.setMinutes(0);
  date.setSeconds(0);   
  return date;     
}

/**
 * Returns a date set to the end of the month
 * 
 * @param {Date} myDate 
 * @returns {Date}
 */
function endOfMonth(myDate){
  let date = new Date(myDate);
  date.setMonth(date.getMonth() +1)
  date.setDate(0);
  date.setHours(23);
  date.setMinutes(59);
  date.setSeconds(59);
  return date;
}

এটি একটি তারিখে পাস করুন, এবং এটি কোনও মাসের শুরুতে বা মাসের শেষের দিকে সেট করা তারিখ ফেরত দেবে।

begninngOfMonthফাংশন মোটামুটি স্বশাসিত, কিন্তু যা মধ্যে যাচ্ছে endOfMonthফাংশন যে আমি আগামী মাসে মাস বৃদ্ধিশীল করছি, এবং তারপর ব্যবহার করছে setDate(0)পূর্ববর্তী মাসের শেষ দিনে যা একটি অংশ দিন ফিরে পাকানো নির্দিষ্ট তারিখ নির্দিষ্ট:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/ উল্লেখ / গ্লোবাল_অবজেক্টস / তারিখ / সেটডেট https://www.w3schools.com/jsref/jsref_setdate.asp

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

সম্পাদনা করুন: আপনি setMilliseconds()অতিরিক্ত সুনির্দিষ্ট হতে চাইলে আপনি অতিরিক্ত মাইলও যেতে পারেন এবং মিলিসেকেন্ডগুলি সেট করতে পারেন।


4

আর একবার চেষ্টা কর.

lastDateofTheMonth = new Date(year, month, 0)

উদাহরণ:

new Date(2012, 8, 0)

আউটপুট:

Date {Fri Aug 31 2012 00:00:00 GMT+0900 (Tokyo Standard Time)}

5
মনে রাখবেন, যদিও সেই মাসগুলি শূন্য-ভিত্তিক, সুতরাং "8" হিসাবে মাসটি সত্যই সেপ্টেম্বর, আগস্টে নয়।
স্টিভ জে

3

এটি আমার পক্ষে কাজ করে। প্রদত্ত বছর এবং মাসের শেষ দিন সরবরাহ করবে:

var d = new Date(2012,02,0);
var n = d.getDate();
alert(n);

1
"2" এর সামনে 0 দিয়ে সতর্ক থাকুন এটি অষ্টাল হিসাবে ব্যাখ্যা করা হবে।
ওয়ালফ্র্যাট

1

এই এক সুন্দরভাবে কাজ করে:

Date.prototype.setToLastDateInMonth = function () {

    this.setDate(1);
    this.setMonth(this.getMonth() + 1);
    this.setDate(this.getDate() - 1);

    return this;
}

1

এটি আপনাকে চলতি মাস প্রথম এবং শেষ দিন দেবে।

আপনার যদি 'বছর' পরিবর্তন করতে হয় d.getFullYear () সরান এবং আপনার বছর সেট করুন।

আপনার যদি প্রয়োজন হয় 'মাস' d.getMonth () মুছে ফেলুন এবং আপনার বছর সেট করুন।

var d = new Date();
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var fistDayOfMonth = days[(new Date(d.getFullYear(), d.getMonth(), 1).getDay())];
	var LastDayOfMonth = days[(new Date(d.getFullYear(), d.getMonth() + 1, 0).getDay())]; 
console.log("First Day :" + fistDayOfMonth); 
console.log("Last Day:" + LastDayOfMonth);
alert("First Day :" + fistDayOfMonth); 
alert("Last Day:" + LastDayOfMonth);


1

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

function _getEndOfMonth(time_stamp) {
    let time = new Date(time_stamp * 1000);
    let month = time.getMonth() + 1;
    let year = time.getFullYear();
    let day = time.getDate();
    switch (month) {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            day = 31;
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            day = 30;
            break;
        case 2:
            if (_leapyear(year))
                day = 29;
            else
                day = 28;
            break
    }
    let m = moment(`${year}-${month}-${day}`, 'YYYY-MM-DD')
    return m.unix() + constants.DAY - 1;
}

function _leapyear(year) {
    return (year % 100 === 0) ? (year % 400 === 0) : (year % 4 === 0);
}

1

নীচে ফাংশন মাসের শেষ দিন দেয়:

function getLstDayOfMonFnc(date) {
  return new Date(date.getFullYear(), date.getMonth(), 0).getDate()
}

console.log(getLstDayOfMonFnc(new Date(2016, 2, 15))) // Output : 29
console.log(getLstDayOfMonFnc(new Date(2017, 2, 15))) // Output : 28
console.log(getLstDayOfMonFnc(new Date(2017, 11, 15))) // Output : 30
console.log(getLstDayOfMonFnc(new Date(2017, 12, 15))) // Output : 31

একইভাবে আমরা মাসের প্রথম দিনটি পেতে পারি:

function getFstDayOfMonFnc(date) {
  return new Date(date.getFullYear(), date.getMonth(), 1).getDate()
}

console.log(getFstDayOfMonFnc(new Date(2016, 2, 15))) // Output : 1


0
function getLastDay(y, m) {
   return 30 + (m <= 7 ? ((m % 2) ? 1 : 0) : (!(m % 2) ? 1 : 0)) - (m == 2) - (m == 2 && y % 4 != 0 || !(y % 100 == 0 && y % 400 == 0)); 
}

0
const today = new Date();

let beginDate = new Date();

let endDate = new Date();

// fist date of montg

beginDate = new Date(

  `${today.getFullYear()}-${today.getMonth() + 1}-01 00:00:00`

);

// end date of month 

// set next Month first Date

endDate = new Date(

  `${today.getFullYear()}-${today.getMonth() + 2}-01 :23:59:59`

);

// deducting 1 day

endDate.setDate(0);

0

আপনার তারিখ নির্ধারিত মাস নির্ধারণ করুন এবং তারপরে দিনটি শূন্যে সেট করুন, সুতরাং মাসের শুরু 1 - 31 তারিখের কার্যক্রমে হয় তবে শেষ দিনটি পান ^^

var last = new Date(new Date(new Date().setMonth(7)).setDate(0)).getDate();
console.log(last);


0

এখানে একটি উত্তর যা GMT এবং প্রাথমিক তারিখের সময় সংরক্ষণ করে

var date = new Date();

var first_date = new Date(date); //Make a copy of the date we want the first and last days from
first_date.setUTCDate(1); //Set the day as the first of the month

var last_date = new Date(first_date); //Make a copy of the calculated first day
last_date.setUTCMonth(last_date.getUTCMonth() + 1); //Add a month
last_date.setUTCDate(0); //Set the date to 0, this goes to the last day of the previous month

console.log(first_date.toJSON().substring(0, 10), last_date.toJSON().substring(0, 10)); //Log the dates with the format yyyy-mm-dd


0

আমি জানি এটি কেবল শব্দার্থবিজ্ঞানের বিষয়, তবে আমি এই ফর্মটিতে এটি ব্যবহার করে শেষ করেছি।

var lastDay = new Date(new Date(2008, 11+1,1) - 1).getDate();
console.log(lastDay);

যেহেতু ফাংশনগুলি ভিতরের আর্গুমেন্ট থেকে সমাধান করা হয়, বাহ্যিকভাবে, এটি একই কাজ করে।

তারপরে আপনি কেবল বছরের, এবং মাস / বছরটিকে প্রয়োজনীয় বিবরণ দিয়ে প্রতিস্থাপন করতে পারেন, এটি বর্তমান তারিখের থেকে হোক। বা একটি নির্দিষ্ট মাস / বছর।


0

আপনার যদি মিলিসেকেন্ডে মাসের সঠিক শেষের প্রয়োজন হয় (উদাহরণস্বরূপ একটি টাইমস্ট্যাম্পে):

d = new Date()
console.log(d.toString())
d.setDate(1)
d.setHours(23, 59, 59, 999)
d.setMonth(d.getMonth() + 1)
d.setDate(d.getDate() - 1)
console.log(d.toString())

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