জাভাস্ক্রিপ্ট - 2 তারিখের মধ্যে তারিখের অ্যারে পান


155
var range = getDates(new Date(), new Date().addDays(7));

আমি "পরিসীমা" তারিখের বস্তুর একটি অ্যারে হতে চাই, দুটি তারিখের মধ্যে প্রতিদিনের জন্য একটি।

কৌশলটি হ'ল এটি মাস এবং বছরের সীমানাও পরিচালনা করে।

উত্তর:


171
Date.prototype.addDays = function(days) {
    var date = new Date(this.valueOf());
    date.setDate(date.getDate() + days);
    return date;
}

function getDates(startDate, stopDate) {
    var dateArray = new Array();
    var currentDate = startDate;
    while (currentDate <= stopDate) {
        dateArray.push(new Date (currentDate));
        currentDate = currentDate.addDays(1);
    }
    return dateArray;
}

এখানে একটি কার্যকরী ডেমো http://jsfiddle.net/jfhartsock/cM3ZU/


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

এটি ভবিষ্যতের তারিখের জন্য ঠিক আছে, তবে আমি যখন 30 দিনের আগের অতীতের তারিখে কাজ করছি তখন আমার কেবলমাত্র সময় না বলে তারিখ পেতে কোডটি পরিবর্তন করা উচিত।
বৈভব কুলকারনী

@ বৈভবকুলকার্নি আপনি কেবল অ্যাডয়েস () প্রোটোটাইপটিকে বিপরীত করতে পারবেন এবং লুপটি সংশোধন করতে পারবেন। তদতিরিক্ত, মন্তব্যগুলি একটি নতুন প্রশ্ন শুরু করার জায়গা নয় place
জন হার্টসক

আমাদের থেকে আরও ভালভাবে সময় সরিয়ে startDateনেওয়া উচিত endDate? কারণ যদি startDateসময়টি সময়ের সময়ের চেয়ে পরে হয় তবে এটি ফলাফলের stopDateঅন্তর্ভুক্ত করবে না stopDate, তাই না?
Hp93

@ Hp93 আপনার ঠিক কী বিষয়ে কথা বলছেন তা নিশ্চিত নয়। আমি সরবরাহ করা ফিডলটি যদি আপনি চালনা করেন তবে আপনি দেখতে পাবেন যে এটি সেই পরিস্থিতিতে পড়ে covers
জন হার্টসক

58

এটি চেষ্টা করুন, মুহুর্তের জেএস অন্তর্ভুক্ত করতে ভুলবেন না,

function getDates(startDate, stopDate) {
    var dateArray = [];
    var currentDate = moment(startDate);
    var stopDate = moment(stopDate);
    while (currentDate <= stopDate) {
        dateArray.push( moment(currentDate).format('YYYY-MM-DD') )
        currentDate = moment(currentDate).add(1, 'days');
    }
    return dateArray;
}

কেবলমাত্র একটি সামান্য উন্নতি: অ্যারে তৈরির জন্য শর্টহ্যান্ড স্বরলিপিটি এখানে সুপারিশ করা হয়েছেvar dateArray = []; বিশদ
অ্যাড্রিয়ান মাইসা

এটি অ্যারেগুলি সংজ্ঞায়নের নতুন উপায় এবং আমি মনে করি এটি সংক্ষিপ্ত / ক্লিনার।
মোহাম্মদ সেফার

1
গুরুত্বপূর্ণ ফিক্স : var currentDate = moment(startDate);আপনি যদি একই মুহূর্তে এই পদ্ধতিটি দু'বার ব্যবহার করছেন s তবে তারিখগুলি কেন প্রথমবারের মতো কাজ করে তা আপনি হতবাক হয়ে যাবেন। এটি ঘটায় কারণ জাভাস্ক্রিপ্টগুলি রেফারেন্স দ্বারা অবজেক্টগুলিকে পাস করে তাই ফাংশনটি দুটিবার স্টার্টডেট ব্যবহার করে শেষ হয় (যা অলরেডি রূপান্তরিত হয়)। উপরের ফিক্সটি প্যাচ করা নিশ্চিত করে যে আপনি ফাংশনের সুযোগে নতুন এবং অনন্য মুহুর্তের জেএস বস্তুগুলির সাথে জড়িত। এই চেক করুন বেহালার
আদ্রিয়ান Moisa

52

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

এক রৈখিক:

var getDaysArray = function(s,e) {for(var a=[],d=new Date(s);d<=e;d.setDate(d.getDate()+1)){ a.push(new Date(d));}return a;};

দীর্ঘ সংস্করণ

var getDaysArray = function(start, end) {
    for(var arr=[],dt=new Date(start); dt<=end; dt.setDate(dt.getDate()+1)){
        arr.push(new Date(dt));
    }
    return arr;
};

মধ্যে তারিখ তালিকা:

var daylist = getDaysArray(new Date("2018-05-01"),new Date("2018-07-01"));
daylist.map((v)=>v.toISOString().slice(0,10)).join("")
/*
Output: 
    "2018-05-01
    2018-05-02
    2018-05-03
    ...
    2018-06-30
    2018-07-01"
*/

অতীত তারিখ থেকে এখন অবধি:

var daylist = getDaysArray(new Date("2018-05-01"),new Date());
daylist.map((v)=>v.toISOString().slice(0,10)).join("")

আপনি নির্দিষ্ট দিনগুলিতে আনতে চান তবে কী হবে getDaysArray? এর মধ্যে দিনগুলি নয়।
জোনজি

ধন্যবাদ! কোন নির্ভরতা সঙ্গে ঠিক আমার কি প্রয়োজন। :)
mpsyp

2
এই ফাংশনটি উত্স ইনপুট তারিখটিকে ম্যানিপুলেট করে। :) আমি এটি পরীক্ষা করেছি।
হামেদ তাহেরি

4
@ HamedTaheri-হ্যাঁ, কিন্তু যে একটি কপি বরাদ্দ করে সংশোধন করা যেতে পারে শুরু করার DT বদলে শুরু নিজেই যেমন for (var arr=[], dt=new Date(start), ...)। ;-)
রবিজি

আপনি অন্য অনেক লোকের সাথে যখন কাজ করছেন তখন সফটওয়্যার রক্ষণাবেক্ষণের জন্য (;;) লুপটি খুব ভাল কাজ করা যায় না, তবে খুব খারাপ।
ভিক্টর

27

আমি moment.js এবং Twix.js ব্যবহার করি তারা তারিখ এবং সময় ম্যানিপুলেশনের জন্য খুব দুর্দান্ত সহায়তা সরবরাহ করে

var itr = moment.twix(new Date('2012-01-15'),new Date('2012-01-20')).iterate("days");
var range=[];
while(itr.hasNext()){
    range.push(itr.next().toDate())
}
console.log(range);

আমার এটি http://jsfiddle.net/Lkzg1bxb/ এ চলছে


আমি সব সঙ্গে সম্পর্কিত ফাইল ডাউনলোড আছে কিন্তু এখনও এটি ত্রুটি TypeError দেখায়: moment.twix কোন ফাংশন নয়
বৈভব কুলকার্নি

আপনার গ্রন্থাগারগুলি অন্তর্ভুক্ত থাকতে পারে। নোডজে এটির মতো হয়, বিভিন্ন মুহুর্ত = প্রয়োজন ('মুহুর্ত'); প্রয়োজন ( 'twix');
ডাঃ বালা সৌন্দরারাজ

18
var boxingDay = new Date("12/26/2010");
var nextWeek  = boxingDay*1 + 7*24*3600*1000;

function getDates( d1, d2 ){
  var oneDay = 24*3600*1000;
  for (var d=[],ms=d1*1,last=d2*1;ms<last;ms+=oneDay){
    d.push( new Date(ms) );
  }
  return d;
}

getDates( boxingDay, nextWeek ).join("\n");
// Sun Dec 26 2010 00:00:00 GMT-0700 (Mountain Standard Time)
// Mon Dec 27 2010 00:00:00 GMT-0700 (Mountain Standard Time)
// Tue Dec 28 2010 00:00:00 GMT-0700 (Mountain Standard Time)
// Wed Dec 29 2010 00:00:00 GMT-0700 (Mountain Standard Time)
// Thu Dec 30 2010 00:00:00 GMT-0700 (Mountain Standard Time)
// Fri Dec 31 2010 00:00:00 GMT-0700 (Mountain Standard Time)
// Sat Jan 01 2011 00:00:00 GMT-0700 (Mountain Standard Time)

3
সুরক্ষিত থাকার জন্য, উপরের মতো নয়, দিনের আলো-সাশ্রয়ের কারণে আপনার সামান্য পরিবর্তনের এড়াতে দিনের মাঝামাঝি সময়টি বেছে নেওয়া উচিত।
ফ্রেগজ

আমি আশা করি আপনি কোডের সাথে দিনের পরিবর্তনেরও যোগ করুন।
মুরগি

15
function (startDate, endDate, addFn, interval) {

 addFn = addFn || Date.prototype.addDays;
 interval = interval || 1;

 var retVal = [];
 var current = new Date(startDate);

 while (current <= endDate) {
  retVal.push(new Date(current));
  current = addFn.call(current, interval);
 }

 return retVal;

}

1
আপনি যদি ক্রমে তারিখগুলি ভুল ক্রমে সরবরাহ করেন তবে এটি
হিমশীতল হবে

11

আপনি যদি মুহুর্তটি ব্যবহার করেন তবে আপনি তাদের "অফিসিয়াল প্লাগইন" ব্যাপ্তিগুলির জন্য ব্যবহার করতে পারেন moment-rangeএবং তারপরে এটি তুচ্ছ হয়ে ওঠে।

মুহুর্তের সীমা নোড উদাহরণ:

const Moment = require('moment');
const MomentRange = require('moment-range');
const moment = MomentRange.extendMoment(Moment);

const start = new Date("11/30/2018"), end = new Date("09/30/2019")
const range = moment.range(moment(start), moment(end));

console.log(Array.from(range.by('day')))

মুহুর্তের সীমা ব্রাউজার উদাহরণ:

window['moment-range'].extendMoment(moment);

const start = new Date("11/30/2018"), end = new Date("09/30/2019")
const range = moment.range(moment(start), moment(end));

console.log(Array.from(range.by('day')))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-range/4.0.1/moment-range.js"></script>

তারিখের fns উদাহরণ:

আপনি যদি এটির ব্যবহার করছেন date-fnsতবে eachDayআপনার বন্ধু এবং আপনি সবচেয়ে সংক্ষিপ্ত এবং সংক্ষিপ্ত উত্তর পেতে পারেন:

console.log(dateFns.eachDay(
  new Date(2018, 11, 30),
  new Date(2019, 30, 09)
))
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/1.29.0/date_fns.min.js"></script>


8

এই প্রশ্নটি সবেমাত্র এসেছে, এটি করার সবচেয়ে সহজ উপায়টি হল মুহূর্তটি ব্যবহার করা:

আপনাকে প্রথমে মুহূর্ত এবং মুহুর্তের সীমাটি ইনস্টল করতে হবে:

const Moment = require('moment');
const MomentRange = require('moment-range');
const moment = MomentRange.extendMoment(Moment);

const start = moment()
const end = moment().add(2, 'months')
const range = moment.range(start, end)
const arrayOfDates = Array.from(range.by('days'))
console.log(arrayOfDates)

6

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

ব্যবহার:

  • মান হিসাবে moment.js তারিখ প্রদান startDate, endDateপরামিতি
  • intervalপ্যারামিটারটি alচ্ছিক এবং 'দিনগুলিতে' ডিফল্ট হয়। .add()পদ্ধতি (moment.js) দ্বারা সরবরাহিত অন্তরগুলি ব্যবহার করুন । আরও বিশদ এখানে
  • totalমিনিটের ব্যবধানগুলি নির্দিষ্ট করার সময় প্যারামিটারটি কার্যকর। এটি ডিফল্ট হয় 1।

ডাকা:

var startDate = moment(),
    endDate = moment().add(1, 'days');

getDatesRangeArray(startDate, endDate, 'minutes', 30);

ফাংশন:

var getDatesRangeArray = function (startDate, endDate, interval, total) {
    var config = {
            interval: interval || 'days',
            total: total || 1
        },
        dateArray = [],
        currentDate = startDate.clone();

    while (currentDate < endDate) {
        dateArray.push(currentDate);
        currentDate = currentDate.clone().add(config.total, config.interval);
    }

    return dateArray;
};

6

ES6 ব্যবহার করে আপনার অ্যারে রয়েছে rom যার অর্থ আপনি একটি সত্যিই মার্জিত ফাংশন লিখতে পারেন, এটি গতিশীল ব্যবধানগুলির জন্য অনুমতি দেয় (ঘন্টা, দিন, মাস)।

function getDates(startDate, endDate, interval) {
const duration = endDate - startDate;
const steps = duration / interval;
return Array.from({length: steps+1}, (v,i) => new Date(startDate.valueOf() + (interval * i)));
}
const startDate = new Date(2017,12,30);
const endDate = new Date(2018,1,3);
const dayInterval = 1000 * 60 * 60 * 24; // 1 day
const halfDayInterval = 1000 * 60 * 60 * 12; // 1/2 day

console.log("Days", getDates(startDate, endDate, dayInterval));
console.log("Half Days", getDates(startDate, endDate, halfDayInterval));


2
"মার্জিত" আপনার দৃষ্টিভঙ্গির উপর নির্ভর করে। new Date(2017,12,30)30 জানুয়ারী 2018, আমার জন্য তারিখের সীমা 29 জানুয়ারী 2018 থেকে শুরু হয় all সমস্ত দিন 8.64e7 এমএস (24 ঘন্টা) দীর্ঘ নয় যেখানে দিবালোক সংরক্ষণ পালন করা হয়। ;-)
রবিজি

5

আমি সম্প্রতি moment.js এর সাথে কাজ করছি, কৌশলটি অনুসরণ করে ..

function getDateRange(startDate, endDate, dateFormat) {
        var dates = [],
            end = moment(endDate),
            diff = endDate.diff(startDate, 'days');

        if(!startDate.isValid() || !endDate.isValid() || diff <= 0) {
            return;
        }

        for(var i = 0; i < diff; i++) {
            dates.push(end.subtract(1,'d').format(dateFormat));
        }

        return dates;
    };
    console.log(getDateRange(startDate, endDate, dateFormat));

ফলাফল হবে:

["09/03/2015", "10/03/2015", "11/03/2015", "12/03/2015", "13/03/2015", "14/03/2015", "15/03/2015", "16/03/2015", "17/03/2015", "18/03/2015"]

3
var listDate = [];
var startDate ='2017-02-01';
var endDate = '2017-02-10';
var dateMove = new Date(startDate);
var strDate = startDate;

while (strDate < endDate){
  var strDate = dateMove.toISOString().slice(0,10);
  listDate.push(strDate);
  dateMove.setDate(dateMove.getDate()+1);
};
console.log(listDate);

//["2017-02-01", "2017-02-02", "2017-02-03", "2017-02-04", "2017-02-05", "2017-02-06", "2017-02-07", "2017-02-08", "2017-02-09", "2017-02-10"]

1
দয়া করে আপনার উত্তর সম্পর্কে আরও বিবরণ এবং / অথবা তথ্য কীভাবে এটি জিজ্ঞাসা করা সমস্যা সমাধান করে তা অন্যরা স্পষ্টতা না জিজ্ঞাসা করে সহজেই বুঝতে পারে
koceeng

আমি দেখতে পাচ্ছি যে এটি কোনও কারণে 2016-03-31 এড়িয়ে চলেছে!
woodhead92

1
varলুপটির strDateভিতরে থাকা উচিত নয় !
বরিস ইয়াকুবচিক

2

d3js অনেক সহজ কার্যকারিতা সরবরাহ করে এবং সহজ তারিখের ম্যানিপুলেশনের জন্য d3.টাইম অন্তর্ভুক্ত করে

https://github.com/d3/d3-time

আপনার নির্দিষ্ট অনুরোধের জন্য:

ইউটিসি

var range = d3.utcDay.range(new Date(), d3.utcDay.offset(new Date(), 7));

বা স্থানীয় সময়

var range = d3.timeDay.range(new Date(), d3.timeDay.offset(new Date(), 7));

পরিসীমা হ'ল তারিখের অবজেক্টগুলির একটি অ্যারে যা প্রতিটি দিনের জন্য প্রথম সম্ভাব্য মানের উপর পড়ে

বিভিন্ন সময় অন্তর একই ফলাফলের জন্য আপনি সময়কে সময়কে সময়, সময়মণ ইত্যাদিতে পরিবর্তন করতে পারেন


2

আপনি এখানে অন্য একটি ফাংশন তৈরি করতে চান না এমন ক্ষেত্রে একটি লাইনার এখানে কোনও লাইব্রেরির প্রয়োজন নেই doesn't আপনার ভেরিয়েবল বা তারিখের মানগুলির সাথে কেবল স্টার্টেট (দুটি জায়গায়) এবং শেষ তারিখ (যা জেএস তারিখের অবজেক্টগুলি) প্রতিস্থাপন করুন। অবশ্যই আপনি এটি একটি ফাংশন মোড়তে পারে যদি আপনি চান

Array(Math.floor((endDate - startDate) / 86400000) + 1).fill().map((_, idx) => (new Date(startDate.getTime() + idx * 86400000)))

এটি দিবালোক / স্ট্যান্ডার্ড সেভিংসের সময় পরিবর্তনের বিষয়টি বিবেচনায় রাখে না .. কিছু দিন দীর্ঘ হয় এবং কিছুটা কম হয়
মাইক

2

আমি এই ফাংশনটি ব্যবহার করি

function getDatesRange(startDate, stopDate) {
    const ONE_DAY = 24*3600*1000;
    var days= [];
    var currentDate = new Date(startDate);
    while (currentDate <= stopDate) {
        days.push(new Date (currentDate));
        currentDate = currentDate - 1 + 1 + ONE_DAY;
    }
    return days;
}

2

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

var start = new Date("01/05/2017");
var end = new Date("06/30/2017");
var newend = end.setDate(end.getDate()+1);
end = new Date(newend);
while(start < end){
   console.log(new Date(start).getTime() / 1000); // unix timestamp format
   console.log(start); // ISO Date format          
   var newDate = start.setDate(start.getDate() + 1);
   start = new Date(newDate);
}


1

দ্রষ্টব্য: আমি জানি যে এটি অনুরোধকৃত সমাধানের চেয়ে কিছুটা আলাদা তবে আমি মনে করি অনেকে এটি দরকারী বলে মনে করছেন।

আপনি যদি দুটি তারিখ, moment.js এবং মুহুর্ত-ব্যাপ্তির এক্সটেনশন প্যাকেজগুলির মধ্যে প্রতিটি "x" অন্তর (দিন, মাস, বছর, ইত্যাদি ...) সন্ধান করতে চান তবে এই কার্যকারিতাটি সক্ষম করে।

উদাহরণস্বরূপ, দুটি তারিখের মধ্যে প্রতিটি 30 তম দিনের সন্ধান করতে :

window['moment-range'].extendMoment(moment);

var dateString = "2018-05-12 17:32:34.874-08";
var start  = new Date(dateString);
var end    = new Date();
var range1 = moment.range(start, end);
var arrayOfIntervalDates = Array.from(range1.by('day', { step: 30 }));

arrayOfIntervalDates.map(function(intervalDate){
  console.log(intervalDate.format('YY-M-DD'))
});

1
  1. কয়েক বছরের অ্যারে তৈরি করুন:

    const DAYS = () => {
     const days = []
     const dateStart = moment()
     const dateEnd = moment().add(30, days')
     while (dateEnd.diff(dateStart, days') >= 0) {
      days.push(dateStart.format(‘D'))
      dateStart.add(1, days')
     }
     return days
    }
    console.log(DAYS())
  2. মাসের জন্য অ্যারে তৈরি করুন:

            const MONTHS = () => {
             const months = []
             const dateStart = moment()
             const dateEnd = moment().add(12, month')
             while (dateEnd.diff(dateStart, months') >= 0) {
              months.push(dateStart.format(‘M'))
              dateStart.add(1, month')
             }
             return months
            }
            console.log(MONTHS())
  3. দিনের জন্য অ্যারে তৈরি করুন:

            const DAYS = () => {
             const days = []
             const dateStart = moment()
             const dateEnd = moment().add(30, days')
             while (dateEnd.diff(dateStart, days') >= 0) {
              days.push(dateStart.format(‘D'))
              dateStart.add(1, days')
             }
             return days
            }
            console.log(DAYS())

1

আপনি momentJS ব্যবহার করে এটি সহজেই করতে পারেন

আপনার নির্ভরতা মুহূর্ত যোগ করুন

npm i moment

তারপরে আপনার ফাইলটিতে এটি আমদানি করুন

var moment = require("moment");

তারপরে দুটি তারিখের মধ্যে সমস্ত তারিখের তালিকা পেতে নিম্নলিখিত কোডটি ব্যবহার করুন

let dates = [];
let currDate = moment.utc(new Date("06/30/2019")).startOf("day");
let lastDate = moment.utc(new Date("07/30/2019")).startOf("day");

do {
 dates.push(currDate.clone().toDate());
} while (currDate.add(1, "days").diff(lastDate) < 0);
dates.push(currDate.clone().toDate());

console.log(dates);

0

এটি কাউকে সাহায্য করতে পারে,

আপনি এ থেকে সারি আউটপুট পেতে পারেন এবং আপনার পছন্দসই সারি_ডেটের অবজেক্টটি ফর্ম্যাট করতে পারেন।

var from_date = '2016-01-01';
var to_date = '2016-02-20';

var dates = getDates(from_date, to_date);

console.log(dates);

function getDates(from_date, to_date) {
  var current_date = new Date(from_date);
  var end_date     = new Date(to_date);

  var getTimeDiff = Math.abs(current_date.getTime() - end_date.getTime());
  var date_range = Math.ceil(getTimeDiff / (1000 * 3600 * 24)) + 1 ;

  var weekday = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
  var months = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"];
  var dates = new Array();

  for (var i = 0; i <= date_range; i++) {
     var getDate, getMonth = '';

     if(current_date.getDate() < 10) { getDate = ('0'+ current_date.getDate());}
     else{getDate = current_date.getDate();}

    if(current_date.getMonth() < 9) { getMonth = ('0'+ (current_date.getMonth()+1));}
    else{getMonth = current_date.getMonth();}

    var row_date = {day: getDate, month: getMonth, year: current_date.getFullYear()};
    var fmt_date = {weekDay: weekday[current_date.getDay()], date: getDate, month: months[current_date.getMonth()]};
    var is_weekend = false;
    if (current_date.getDay() == 0 || current_date.getDay() == 6) {
        is_weekend = true;
    }
    dates.push({row_date: row_date, fmt_date: fmt_date, is_weekend: is_weekend});
    current_date.setDate(current_date.getDate() + 1);
 }
 return dates;
}

https://gist.github.com/pranid/3c78f36253cbbc6a41a859c5d718f362.js


0

এখানে একটি ক্যানড পদ্ধতি রয়েছে যা মুহুর্তের তারিখগুলি বা স্ট্রিংগুলি বা ইনপুট হিসাবে একটি মিশ্রণ গ্রহণ করবে এবং মুহুর্তের তারিখ হিসাবে তারিখের অ্যারে তৈরি করবে। আপনি যদি আউটপুট হিসাবে মুহুর্তের তারিখগুলি না চান তবে map()পদ্ধতিটি কী দেয় তা পরিবর্তন করুন ।

const moment = require('moment');

// ...

/**
 * @param {string|import('moment').Moment} start
 * @param {string|import('moment').Moment} end
 * @returns {import('moment').Moment[]}
 */
const getDateRange = (start, end) => {
  const s = moment.isMoment(start) ? start : moment(start);
  const e = moment.isMoment(end) ? end : moment(end);
  return [...Array(1 + e.diff(s, 'days')).keys()].map(n => moment(s).add(n, 'days'));
};

0

@ সফটওয়ার এর সমাধান, তবে তারপরে কাজের তারিখগুলি সহ including

/**
 * Returns array of working days between two dates.
 *
 * @param {string} startDate
 *   The start date in yyyy-mm-dd format.
 * @param {string} endDate
 *   The end date in yyyy-mm-dd format.
 * @param {boolean} onlyWorkingDays
 *   If true only working days are returned. Default: false
 *
 * @return {array}
 *   Array of dates in yyyy-mm-dd string format.
 */
function getDates(startDate, stopDate, onlyWorkingDays) {
  let doWd = typeof onlyWorkingDays ==='undefined' ? false : onlyWorkingDays;

  let dateArray = [];  
  let dayNr;
  let runDateObj = moment(startDate);  
  let stopDateObj = moment(stopDate);

  while (runDateObj <= stopDateObj) {
    dayNr = runDateObj.day();
    if (!doWd || (dayNr>0 && dayNr<6)) {
     dateArray.push(moment(runDateObj).format('YYYY-MM-DD'));  
    }

    runDateObj = moment(runDateObj).add(1, 'days');
  }
  return dateArray;
}

0

ফাংশন:

  var dates = [],
      currentDate = startDate,
      addDays = function(days) {
        var date = new Date(this.valueOf());
        date.setDate(date.getDate() + days);
        return date;
      };
  while (currentDate <= endDate) {
    dates.push(currentDate);
    currentDate = addDays.call(currentDate, 1);
  }
  return dates;
};

ব্যবহার:

var dates = getDatesRange(new Date(2019,01,01), new Date(2019,01,25));                                                                                                           
dates.forEach(function(date) {
  console.log(date);
});

আশা করি এটি আপনাকে সহায়তা করবে

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