উত্তর:
আপনি এটি দিয়ে একটি তৈরি করতে পারেন: -
Date.prototype.addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
}
var date = new Date();
alert(date.addDays(5));
এটি প্রয়োজনে স্বয়ংক্রিয়ভাবে মাসে বৃদ্ধি করার যত্ন নেয়। উদাহরণ স্বরূপ:
8/31 + 1 দিন 9/1 হয়ে যাবে ।
setDate
সরাসরি ব্যবহারে সমস্যা হ'ল এটি একটি পরিবর্তনকারী এবং এই ধরণের জিনিসটি সর্বোত্তমভাবে এড়ানো যায়। ইসিএমএ Date
অপরিবর্তনীয় কাঠামোর পরিবর্তে একটি পরিবর্তনীয় শ্রেণি হিসাবে বিবেচনা করতে উপযুক্ত বলে মনে করেছিল।
864E5
কোনও কারণে আমি 24*60*60
আমার কোডে লিখতে পছন্দ করি :)
সঠিক উত্তর :
function addDays(date, days) {
var result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}
ভুল উত্তর :
এই উত্তরটি মাঝে মাঝে সঠিক ফলাফল সরবরাহ করে তবে খুব প্রায়ই ভুল বছর এবং মাস প্রদান করে। এই উত্তরটি কার্যকর হওয়ার সময়টি যখন আপনি যে তারিখটি যোগ করার জন্য দিনটি যুক্ত করছেন তার বর্তমান বছরের এবং মাসটি ঘটে।
// Don't do it this way!
function addDaysWRONG(date, days) {
var result = new Date();
result.setDate(date.getDate() + days);
return result;
}
প্রুফ / উদাহরণ
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);
সাবধান থাকুন, কারণ এটি কৌশলপূর্ণ হতে পারে be "আগামীকাল" সেট করার সময়, এটি কেবলমাত্র কাজ করে কারণ এটির বর্তমান মান "আজকের" জন্য বছর এবং মাসের সাথে মেলে। যাইহোক, "32" এর মতো একটি তারিখের নম্বরটি সেট করা পরবর্তী মাসে এটিকে সরানোর জন্য এখনও ঠিক কাজ করবে work
var d = new Date(); d.setDate( d.getDate() + 1 );
?
getDate()
ফিরে আসে । তারপরে, কলিং বর্তমান বছরের দিন নির্ধারণ করে । সুতরাং এটি হল না একটি ভাল সাধারণ সমাধান। @ অ্যান্থনিডাব্লু জোনসের উত্তর আসলে সঠিকভাবে কাজ করে। setDate
var d = new Date(2015,11,30);d.setDate(d.getDate() + 370)
3 জানুয়ারী 2017 দেয় যা 2 বছর পেরিয়ে যায়।
আমার সহজ সমাধানটি হ'ল:
nextday=new Date(oldDate.getFullYear(),oldDate.getMonth(),oldDate.getDate()+1);
দিবালোক সাশ্রয়ের সময় নিয়ে এই সমাধানে সমস্যা নেই। এছাড়াও, কেউ বছর, মাস, দিন ইত্যাদির জন্য যে কোনও অফসেট যুক্ত / উপস্থাপন করতে পারে
day=new Date(oldDate.getFullYear()-2,oldDate.getMonth()+22,oldDate.getDate()+61);
সঠিক কোড।
setDate
।
এই উত্তরগুলি আমার কাছে বিভ্রান্তিকর বলে মনে হচ্ছে, আমি পছন্দ করি:
var ms = new Date().getTime() + 86400000;
var tomorrow = new Date(ms);
গেটটাইম () আমাদের 1970 সাল থেকে মিলি সেকেন্ড দেয় এবং 86400000 এক দিনে মিলি সেকেন্ডের সংখ্যা। সুতরাং, এমএসে কাঙ্ক্ষিত তারিখের জন্য মিলিসেকেন্ড রয়েছে।
মিলিসেকেন্ড কনস্ট্রাক্টর ব্যবহার করে কাঙ্ক্ষিত তারিখের অবজেক্ট দেয়।
new Date(new Date('11/4/2012').getTime() + 86400000)
চেষ্টা
var someDate = new Date();
var duration = 2; //In Days
someDate.setTime(someDate.getTime() + (duration * 24 * 60 * 60 * 1000));
আপনার সমস্যার সমাধান না করে একটি তারিখ যোগ করতে সেটডেট () ব্যবহার করে, ফেব্রুয়ারী মাসে কিছু দিন যুক্ত করার চেষ্টা করুন, আপনি যদি এতে নতুন দিন যুক্ত করার চেষ্টা করেন, তবে এটি আপনার প্রত্যাশার ফলাফল নয়।
setDate()
? : এটা এই হল stackoverflow.com/questions/5497637/...
নীচের নেতৃত্বের উদাহরণগুলি অনুসরণ করার পরে বছরটি কী ছিল তা কীভাবে কাজ করার চেষ্টা করার জন্য যুগে যুগে অতিবাহিত করেছিলেন।
আপনি যদি কেবলমাত্র তারিখটিতে কেবল n দিন যোগ করতে চান তবে আপনার কাছে সবেমাত্র যাওয়া ভাল:
myDate.setDate (myDate.getDate () + n);
বা দীর্ঘায়িত সংস্করণ
var theDate = new Date(2013, 11, 15);
var myNewDate = new Date(theDate);
myNewDate.setDate(myNewDate.getDate() + 30);
console.log(myNewDate);
এটি আজ / আগামীকাল স্টাফগুলি বিভ্রান্তিকর। আপনার নতুন তারিখের পরিবর্তনশীলটিতে বর্তমান তারিখটি সেট করে আপনি বছরের মানটি গণ্ডগোল করবেন। আপনি যদি আসল তারিখ থেকে কাজ করেন তবে আপনি পারবেন না।
আপনি যদি পারেন তবে moment.js ব্যবহার করুন । জাভাস্ক্রিপ্টের খুব ভাল নেটিভ তারিখ / সময় পদ্ধতি নেই। নীচে মুহুর্তের বাক্য গঠন উদাহরণ:
var nextWeek = moment().add(7, 'days');
alert(nextWeek);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment-with-locales.min.js"></script>
তথ্যসূত্র: http://momentjs.com/docs/#/manipulating/add/
int days = 1;
var newDate = new Date(Date.now() + days * 24*60*60*1000);
var days = 2;
var newDate = new Date(Date.now() + days * 24*60*60*1000);
document.write('Today: <em>');
document.write(new Date());
document.write('</em><br/> New: <strong>');
document.write(newDate);
আমি গতরাতে এই এক্সটেনশনগুলি তৈরি করেছি:
আপনি ইতিবাচক বা নেতিবাচক মানগুলি পাস করতে পারেন;
উদাহরণ:
var someDate = new Date();
var expirationDate = someDate.addDays(10);
var previous = someDate.addDays(-5);
Date.prototype.addDays = function (num) {
var value = this.valueOf();
value += 86400000 * num;
return new Date(value);
}
Date.prototype.addSeconds = function (num) {
var value = this.valueOf();
value += 1000 * num;
return new Date(value);
}
Date.prototype.addMinutes = function (num) {
var value = this.valueOf();
value += 60000 * num;
return new Date(value);
}
Date.prototype.addHours = function (num) {
var value = this.valueOf();
value += 3600000 * num;
return new Date(value);
}
Date.prototype.addMonths = function (num) {
var value = new Date(this.valueOf());
var mo = this.getMonth();
var yr = this.getYear();
mo = (mo + num) % 12;
if (0 > mo) {
yr += (this.getMonth() + num - mo - 12) / 12;
mo += 12;
}
else
yr += ((this.getMonth() + num - mo) / 12);
value.setMonth(mo);
value.setYear(yr);
return value;
}
দ্বিতীয় পরিবর্তনশীলটি ব্যবহার না করে, আপনি আপনার পরবর্তী x দিনের সাথে 7 প্রতিস্থাপন করতে পারেন:
let d=new Date(new Date().getTime() + (7 * 24 * 60 * 60 * 1000));
30 দিনের ব্যবহার বিস্তৃত করতে (24 ঘন্টা = 86400000 মিমি)
new Date(+yourDate - 30 *86400000)
সহজ সমাধান।
Date.prototype.addDays = function(days) {
this.setDate(this.getDate() + parseInt(days));
return this;
};
// and then call
var newDate = new Date().addDays(2); //+2 days
console.log(newDate);
// or
var newDate1 = new Date().addDays(-2); //-2 days
console.log(newDate1);
আপনার জবাব প্রত্যাশার মতো কাজ করার জন্য ধন্যবাদ জেসন, এখানে আপনার কোড থেকে মিশ্রণ এবং অ্যান্টনিউবজোনসের হ্যান্ডি ফর্ম্যাটটি রয়েছে:
Date.prototype.addDays = function(days){
var ms = new Date().getTime() + (86400000 * days);
var added = new Date(ms);
return added;
}
পার্টিতে দেরীতে, তবে আপনি যদি ব্যবহার করেন মোমেন্ট নামে একটি দুর্দান্ত প্লাগইন রয়েছে:jQuery
তবে
var myDateOfNowPlusThreeDays = moment().add(3, "days").toDate();
http://momentjs.com/docs/#/manipulating/
এবং সেখানে অন্যান্য অনেক ভাল জিনিস!
সম্পাদনা করুন: আইকিরুর মন্তব্যে ধন্যবাদ jQuery রেফারেন্স সরানো
পাইপলাইন অপারেটরের জন্য তৈরি একটি সমাধান :
const addDays = days => date => {
const result = new Date(date);
result.setDate(result.getDate() + days);
return result;
};
ব্যবহার:
// Without the pipeline operator...
addDays(7)(new Date());
// And with the pipeline operator...
new Date() |> addDays(7);
আপনার যদি আরও কার্যকারিতা প্রয়োজন হয় তবে আমি ডেট-এফএনএস লাইব্রেরিটি সন্ধান করার পরামর্শ দিচ্ছি ।
পুরানো আমি জানি, তবে কখনও কখনও আমি এটি পছন্দ করি:
function addDays(days) {
return new Date(Date.now() + 864e5 * days);
}
Date.prototype.addDays = function(days) {return new Date(this.getTime() + (864e5 * days));};
আমি প্রস্তাবিত সমাধানের সাথে দিবালোক সঞ্চয় সময় নিয়ে সমস্যা ছিল।
getUTCDate
/ setUTCDate
পরিবর্তে ব্যবহার করে, আমি আমার সমস্যা সমাধান করেছি।
// Curried, so that I can create helper functions like `add1Day`
const addDays = num => date => {
// Make a working copy so we don't mutate the supplied date.
const d = new Date(date);
d.setUTCDate(d.getUTCDate() + num);
return d;
}
আপনি জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন, jQuery প্রয়োজন নেই:
var someDate = new Date();
var numberOfDaysToAdd = 6;
someDate.setDate(someDate.getDate() + numberOfDaysToAdd);
Formatting to dd/mm/yyyy :
var dd = someDate.getDate();
var mm = someDate.getMonth() + 1;
var y = someDate.getFullYear();
var someFormattedDate = dd + '/'+ mm + '/'+ y;
জেনেরিক প্রোটোটাইপ বিনা ভেরিয়েবল সহ, এটি একটি বিদ্যমান তারিখের মানের জন্য প্রয়োগ হয়:
Date.prototype.addDays = function (days) {
return new Date(this.valueOf() + days * 864e5);
}
সেটডেট () এর জন্য মোজিলা ডক্সটি নির্দেশ করে না যে এটি মাসের দৃশ্যের শেষ পরিচালনা করবে। দেখাHttps://developer.mozilla.org/en-US/docs/ স্ক্রিপ্ট / গ্লোবাল_অবজেক্টস / তারিখ
তারিখ ঠিক করা()
এজন্য যখন আমাকে দিন যুক্ত করার দরকার হয় তখন আমি সেটটাইম () ব্যবহার করি।
এই হিসাবে সহজ:
new Date((new Date()).getTime() + (60*60*24*1000));
আমার ধারণা আমিও একটি উত্তর দেব:
ব্যক্তিগতভাবে, আমি কৃত্রিম পরিবর্তনশীল ঘোষণা, পদ্ধতি কল এবং কনস্ট্রাক্টর কলগুলি এড়ানোর চেষ্টা করতে চাই, কারণ এগুলি সমস্ত পারফরম্যান্সে ব্যয়বহুল। (কারণগুলির মধ্যে অবশ্যই)
আমি এটিকে @ অ্যান্থনিডাব্লু জোন্স দ্বারা প্রদত্ত উত্তরের নীচে কেবল মন্তব্য হিসাবে রেখে যেতে যাচ্ছিলাম তবে এটিকে আরও ভাল করে ভাবেন।
// Prototype usage...
Date.prototype.addDays = Date.prototype.addDays || function( days ) {
return this.setTime( 864E5 * days + this.valueOf() ) && this;
};
// Namespace usage...
namespace.addDaysToDate = function( date, days ) {
return date.setTime( 864E5 * days + date.valueOf() ) && date;
};
// Basic Function declaration...
function addDaysToDate( date, days ) {
return date.setTime( 864E5 * days + date.valueOf() ) && date;
};
উপরের ডিএসটি সম্মান করবে। মানে আপনি যদি ডিএসটি অতিক্রম করে এমন বেশ কয়েকটি দিন যোগ করেন তবে প্রদর্শিত সময় (ঘন্টা) তা প্রতিফলিত করতে পরিবর্তিত হবে।
উদাহরণ:
নভেম্বর 2, 2014 02:00 ছিল ডিএসটি-র সমাপ্তি।
var dt = new Date( 2014, 10, 1, 10, 30, 0 );
console.log( dt ); // Sat Nov 01 2014 10:30:00
console.log( dt.addDays( 10 ) ); // Tue Nov 11 2014 09:30:00
আপনি যদি ডিএসটি জুড়ে সময় ধরে রাখতে চান (তাই 10:30 এখনও 10:30 হবে) ...
// Prototype usage...
Date.prototype.addDays = Date.prototype.addDays || function( days ) {
return this.setDate( this.getDate() + days ) && this;
};
// Namespace usage...
namespace.addDaysToDate = function( date, days ) {
return date.setDate( date.getDate() + days ) && date;
};
// Basic Function declaration...
function addDaysToDate( date, days ) {
return date.setDate( date.getDate() + days ) && date;
};
সুতরাং, এখন আপনি ...
var dt = new Date( 2014, 10, 1, 10, 30, 0 );
console.log( dt ); // Sat Nov 01 2014 10:30:00
console.log( dt.addDays( 10 ) ); // Tue Nov 11 2014 10:30:00
না, জাভাস্ক্রিপ্টের কোনও ফাংশন বিল্ট ইন নেই, তবে আপনি কোডের একটি সাধারণ লাইন ব্যবহার করতে পারেন
timeObject.setDate(timeObject.getDate() + countOfDays);
আমি এরকম কিছু ব্যবহার করি:
new Date(dateObject.getTime() + amountOfDays * 24 * 60 * 60 * 1000)
দিন সাশ্রয়ের সময় নিয়ে কাজ করে:
new Date(new Date(2014, 2, 29, 20, 0, 0).getTime() + 1 * 24 * 60 * 60 * 1000)
নতুন বছর নিয়ে কাজ করে:
new Date(new Date(2014, 11, 31, 20, 0, 0).getTime() + 1 * 24 * 60 * 60 * 1000)
এটি প্যারামাইট্রাইজ করা যেতে পারে:
function DateAdd(source, amount, step) {
var factor = 1;
if (step == "day") factor = 24 * 60 * 60 * 1000;
else if (step == "hour") factor = 60 * 60 * 1000;
...
new Date(source.getTime() + amount * factor);
}
আমি নিম্নলিখিত সমাধানটি ব্যবহার করছি।
var msInDay = 86400000;
var daysToAdd = 5;
var now = new Date();
var milliseconds = now.getTime();
var newMillisecods = milliseconds + msInDay * daysToAdd;
var newDate = new Date(newMillisecods);
//or now.setTime(newMillisecods);
তারিখের এমন একটি নির্মাতা রয়েছে যা কোনও আন্ত গ্রহণ করে। এই যুক্তিটি জানুয়ারি 1, 1970 এর আগে / পরে মোট মিলি সেকেন্ডের প্রতিনিধিত্ব করে It এটির একটি পদ্ধতি সেটটাইমও রয়েছে যা একটি নতুন তারিখ অবজেক্ট তৈরি না করে একই কাজ করে।
আমরা এখানে যা করি তা হ'ল দিনগুলি মিলি সেকেন্ডে রূপান্তরিত হয় এবং এই মানটি গেটটাইম দ্বারা সরবরাহিত মানের সাথে যুক্ত হয়। শেষ অবধি, আমরা ফলাফল তারিখ (মিলিসেকেন্ডস) কনস্ট্রাক্টর বা সেটটাইম (মিলিসেকেন্ড) পদ্ধতিতে দেব।
now.setDate(now.getDate() + days);
স্বয়ংক্রিয়ভাবে ডিএসটি পরিবর্তনগুলি পরিচালনা করে। এবং আমাকে সংশোধন করতে হবে, জেএস টাইমস্ট্যাম্পগুলিতে লিপ সেকেন্ড উপেক্ষা করা হবে।
সম্পাদনা করুন:setTime()
(বা setHours()
) এর
পরিবর্তে আপনি এটি এভাবে করতে পারেন:
Date.prototype.addDays= function(d){
this.setDate(this.getDate() + d);
return this;
};
var tomorrow = new Date().addDays(1);
পুরানো:
পরিবর্তে setTime()
আপনি ব্যবহার করতে পারেন setHours()
:
Date.prototype.addDays= function(d){
this.setHours(this.getHours() + d * 24);
return this;
};
var tomorrow = new Date().addDays(1);
জেএসফিডাল দেখুন ...
d.setDate(d.getDate() + 1);
জাভা স্ক্রিপ্টে তারিখের দিন যুক্ত করার জন্য খুব সহজ কোড।
var d = new Date();
d.setDate(d.getDate() + prompt('how many days you want to add write here'));
alert(d);
একটি সেটডেট এবং একটি গেটডেট পদ্ধতি রয়েছে যা আপনাকে এরকম কিছু করার অনুমতি দেয়:
var newDate = aDate.setDate(aDate.getDate() + numberOfDays);
যদি আপনি উভয়ই বেশ কয়েকটি দিন বিয়োগ করতে চান এবং আপনার তারিখটিকে মানব পাঠযোগ্য বিন্যাসে ফর্ম্যাট করতে চান তবে আপনার এমন একটি কাস্টম DateHelper
অবজেক্ট তৈরির বিষয়টি বিবেচনা করা উচিত :
var DateHelper = {
addDays : function(aDate, numberOfDays) {
aDate.setDate(aDate.getDate() + numberOfDays); // Add numberOfDays
return aDate; // Return the date
},
format : function format(date) {
return [
("0" + date.getDate()).slice(-2), // Get day and pad it with zeroes
("0" + (date.getMonth()+1)).slice(-2), // Get month and pad it with zeroes
date.getFullYear() // Get full year
].join('/'); // Glue the pieces together
}
}
// With this helper, you can now just use one line of readable code to :
// ---------------------------------------------------------------------
// 1. Get the current date
// 2. Add 20 days
// 3. Format it
// 4. Output it
// ---------------------------------------------------------------------
document.body.innerHTML = DateHelper.format(DateHelper.addDays(new Date(), 20));
( এই ফিডলটিও দেখুন )
জাভাস্ক্রিপ্টে প্রোটোটাইপ প্রসারিত করা ভাল ধারণা নয় , বিশেষত পেশাদার কোডবেসে in
আপনি যা করতে চান তা হ'ল নেটিভ Date
ক্লাসটি বাড়ানো :
class MyCustomDate extends Date {
addDays(days) {
const date = new MyCustomDate(this.valueOf());
date.setDate(date.getDate() + days);
return date;
}
}
const today = new MyCustomDate();
const nextWeek = today.addDays(7)
console.log(nextWeek)
এইভাবে, যদি একদিন জাভাস্ক্রিপ্ট কোনও স্থানীয় addDays
পদ্ধতি প্রয়োগ করে তবে আপনি কোনও কিছু ভাঙ্গবেন না।
Date.prototype.addDays=function(d){return new Date(this.valueOf()+864E5*d);};