উত্তর:
একদিন যোগ করার উপায়টি ব্যবহার করে এটি করার একটি উপায় এখানে প্রয়োজনে পরবর্তী মাসের জন্য তারিখটি রোল করার জন্য এবং মিলিসেকেন্ডের সাথে গোলমাল না করে causes দিবালোক সঞ্চয় কোনও সমস্যা নয়।
var now = new Date();
var daysOfYear = [];
for (var d = new Date(2012, 0, 1); d <= now; d.setDate(d.getDate() + 1)) {
daysOfYear.push(new Date(d));
}
নোট করুন যে আপনি যদি তারিখটি সংরক্ষণ করতে চান তবে আপনাকে একটি নতুন তৈরি করতে হবে (উপরে হিসাবে new Date(d)
), না হলে আপনি প্রতিটি সঞ্চিত তারিখটি d
লুপের চূড়ান্ত মান হিসাবে শেষ করবেন ।
Date.now()
সংজ্ঞা দেওয়ার সময় কেন করবেন now
? new Date()
ডিফল্টরূপে বর্তমান তারিখটিকে অবজেক্ট হিসাবে ফিরিয়ে দেয় । কনস্ট্রাক্টর Date
ছাড়াই কল করা new
আপনাকে কেবল একটি তারিখের স্ট্রিং দেয় যা আপনি যাইহোক কোনও তারিখ অবজেক্টে রূপান্তর করেন?
new Date(2012, 0, 1);
ভুল দিনটি উত্থাপন করা হয়েছিল (একদিন আগে), ভাল new Date(Date.UTC(2012, 0, 1))
কাজ করেছে।
টম গ্লেনের উত্তরের উপর ভিত্তি করে।
var start = new Date("02/05/2013");
var end = new Date("02/10/2013");
var loop = new Date(start);
while(loop <= end){
alert(loop);
var newDate = loop.setDate(loop.getDate() + 1);
loop = new Date(newDate);
}
Date
একটি বিশ্বব্যাপী অবজেক্ট বিকাশকারী.মোজিলা.আর.ইন.ইউএস
যদি স্টার্টডেট এবং শেষ তারিখটি সত্যই তারিখের অবজেক্ট হয় তবে আপনি এগুলিকে 1 জানুয়ারি 1970, মধ্যরাতের পর থেকে এগুলি সংখ্যায় মিলিসেকেন্ডে রূপান্তর করতে পারেন:
var startTime = startDate.getTime(), endTime = endDate.getTime();
তারপরে আপনি 86400000 (1000 * 60 * 60 * 24) দ্বারা এক থেকে অন্য বাড়ানো লুপটাইমটিতে লুপ করতে পারেন - একদিনে মিলিসেকেন্ডের সংখ্যা:
for(loopTime = startTime; loopTime < endTime; loopTime += 86400000)
{
var loopDay=new Date(loopTime)
//use loopDay as you wish
}
86400000
একদিনে কয়েক সেকেন্ডও ধরে নিতে পারবেন না are এই লুপটি দিবালোকের সঞ্চয়ী পরিবর্তন এবং অন্যান্য প্রান্তের অবস্থার চেয়ে ভঙ্গুর।
আপনি যদি নিজেকে মোমেন্ট.জেএস ব্যবহার করার অনুমতি দেন তবে আমি একটি আরও সহজ উত্তর পেয়েছি বলে মনে করি :
// cycle through last five days, today included
// you could also cycle through any dates you want, mostly for
// making this snippet not time aware
const currentMoment = moment().subtract(4, 'days');
const endMoment = moment().add(1, 'days');
while (currentMoment.isBefore(endMoment, 'day')) {
console.log(`Loop at ${currentMoment.format('YYYY-MM-DD')}`);
currentMoment.add(1, 'days');
}
<script src="https://cdn.jsdelivr.net/npm/moment@2/moment.min.js"></script>
এখানে সহজ ওয়ার্কিং কোড, আমার জন্য কাজ করেছে
var from = new Date(2012,0,1);
var to = new Date(2012,1,20);
// loop for every day
for (var day = from; day <= to; day.setDate(day.getDate() + 1)) {
// your day is here
}
var start = new Date("2014-05-01"); //yyyy-mm-dd
var end = new Date("2014-05-05"); //yyyy-mm-dd
while(start <= end){
var mm = ((start.getMonth()+1)>=10)?(start.getMonth()+1):'0'+(start.getMonth()+1);
var dd = ((start.getDate())>=10)? (start.getDate()) : '0' + (start.getDate());
var yyyy = start.getFullYear();
var date = dd+"/"+mm+"/"+yyyy; //yyyy-mm-dd
alert(date);
start = new Date(start.setDate(start.getDate() + 1)); //date increase by 1
}
তাবারের উত্তরের উপর ভিত্তি করে, আমাকে চূড়ান্ত আগে কাটা শেষ হওয়ার পরে আরও একটি দিন যোগ করতে হয়েছিল
var start = new Date("02/05/2013");
var end = new Date("02/10/2013");
var newend = end.setDate(end.getDate()+1);
var end = new Date(newend);
while(start < end){
alert(start);
var newDate = start.setDate(start.getDate() + 1);
start = new Date(newDate);
}
আপনি যদি মিলিসেকেন্ড সহ কার্যকর উপায় চান:
var daysOfYear = [];
for (var d = begin; d <= end; d = d + 86400000) {
daysOfYear.push(new Date(d));
}
আসুন ধরে নেওয়া যাক আপনি ইউআই থেকে শুরু করার তারিখ এবং শেষের তারিখ পেয়েছেন এবং এটি নিয়ামকের স্কোপ ভেরিয়েবলে সঞ্চয় করে রেখেছেন।
তারপরে এমন একটি অ্যারে ঘোষণা করুন যা প্রতিটি ফাংশন কলে রিসেট হবে যাতে ফাংশনের জন্য পরবর্তী কলে নতুন ডেটা সংরক্ষণ করা যায়।
var dayLabel = [];
নতুন তারিখ (আপনার প্রারম্ভিক চলক) ব্যবহার করা মনে রাখবেন কারণ আপনি যদি নতুন তারিখটি ব্যবহার না করেন এবং সেটটেট ফাংশনটি সরাসরি এটি পরিবর্তনশীলকে অর্পণ করেন তবে প্রতিটি পুনরাবৃত্তির মূল পরিবর্তনশীল মানটি পরিবর্তিত হবে`
for (var d = new Date($scope.startDate); d <= $scope.endDate; d.setDate(d.getDate() + 1)) {
dayLabel.push(new Date(d));
}
জয়ারজোর উত্তরের ভিত্তিতে:
var loopDate = new Date();
loopDate.setTime(datFrom.valueOf());
while (loopDate.valueOf() < datTo.valueOf() + 86400000) {
alert(loopDay);
loopDate.setTime(loopDate.valueOf() + 86400000);
}