তারিখ গ্রহণের সহজ উপায় (উদাহরণস্বরূপ আজ) এবং এক্স দিন ফিরে যাওয়ার কথা কি কেউ জানেন?
সুতরাং, উদাহরণস্বরূপ, আমি যদি আজকের 5 দিন আগে তারিখটি গণনা করতে চাই।
তারিখ গ্রহণের সহজ উপায় (উদাহরণস্বরূপ আজ) এবং এক্স দিন ফিরে যাওয়ার কথা কি কেউ জানেন?
সুতরাং, উদাহরণস্বরূপ, আমি যদি আজকের 5 দিন আগে তারিখটি গণনা করতে চাই।
উত্তর:
এরকম কিছু চেষ্টা করুন:
var d = new Date();
d.setDate(d.getDate()-5);
নোট করুন যে এটি তারিখের অবজেক্টটি সংশোধন করে এবং আপডেটের তারিখের সময়মূল্য দেয়।
var d = new Date();
document.write('Today is: ' + d.toLocaleString());
d.setDate(d.getDate() - 5);
document.write('<br>5 days ago was: ' + d.toLocaleString());
new Date(new Date().setDate(new Date().getDate()-5))
- এটি 5 দিন আগে হবে। উত্তরের উদাহরণে, তারিখের অবজেক্ট পেতে এটি একটি নতুন তারিখে পাস করুন। আপনি new Date(d)
কি চান তাই ।
setDate(-1)
মাসের শেষ দিন তারিখ নির্ধারণ করবে
toString
মত পদ্ধতি toISOString
, toDateString
ইত্যাদি
var dateOffset = (24*60*60*1000) * 5; //5 days
var myDate = new Date();
myDate.setTime(myDate.getTime() - dateOffset);
আপনি যদি আপনার ওয়েব অ্যাপ্লিকেশন জুড়ে প্রচুর মাথাব্যথা ডেট ম্যানিপুলেশন করছেন, ডেটজেএস আপনার জীবনকে আরও সহজ করে তুলবে:
getTime()
এবং setTime()
এটি মিলি সেকেন্ড। সময়টি এক বছরের সীমানা অতিক্রম করে কিনা তা বিবেচ্য নয়।
এইটার মতো কিছু একটা হচ্ছে:
var d = new Date(); // today!
var x = 5; // go back 5 days!
d.setDate(d.getDate() - x);
function getDaysAgo(b){var a=new Date;a.setDate(a.getDate()-b);return a};
তারপরেvar daysAgo45 = getDaysAgo(45);
আমি লক্ষ্য করেছি যে getDays + X দিন / মাসের সীমানা পেরিয়ে কাজ করে না। গেটটাইম ব্যবহার করা ততক্ষণ কাজ করে যতক্ষণ না আপনার তারিখ 1970 এর আগে না।
var todayDate = new Date(), weekDate = new Date();
weekDate.setTime(todayDate.getTime()-(7*24*3600000));
moment.js পান। সমস্ত শীতল বাচ্চারা এটি ব্যবহার করে। এটিতে আরও ফর্ম্যাটিং বিকল্প রয়েছে ইত্যাদি Where
var n = 5;
var dateMnsFive = moment(<your date>).subtract(n , 'day');
ঐচ্ছিক! কৌণিক বন্ধনের জন্য জেএস তারিখের বিষয়টিকে রূপান্তর করুন।
var date = new Date(dateMnsFive.toISOString());
ঐচ্ছিক! বিন্যাস
var date = dateMnsFive.format("YYYY-MM-DD");
আমি তারিখের জন্য এই প্রোটোটাইপটি তৈরি করেছি যাতে আমি দিনগুলি বিয়োগ করতে নেতিবাচক মানগুলি এবং দিন যুক্ত করতে ইতিবাচক মানগুলি পাস করতে পারি।
if(!Date.prototype.adjustDate){
Date.prototype.adjustDate = function(days){
var date;
days = days || 0;
if(days === 0){
date = new Date( this.getTime() );
} else if(days > 0) {
date = new Date( this.getTime() );
date.setDate(date.getDate() + days);
} else {
date = new Date(
this.getFullYear(),
this.getMonth(),
this.getDate() - Math.abs(days),
this.getHours(),
this.getMinutes(),
this.getSeconds(),
this.getMilliseconds()
);
}
this.setTime(date.getTime());
return this;
};
}
সুতরাং, এটি ব্যবহার করতে আমি সহজভাবে লিখতে পারি:
var date_subtract = new Date().adjustDate(-4),
date_add = new Date().adjustDate(4);
d.setDate(d.getDate() + days)
জন্য ইতিবাচক ও নেতিবাচক উভয় মান দিন যথাক্রমে যোগ করতে পারেন এবং দিন বিয়োগ করতে হবে। এবং এটি উদাহরণে কাজ করা উচিত (অন্যান্য তারিখের পদ্ধতিগুলির মতো), কোনও অনুলিপি তৈরি করে না ফেরত।
বিদ্যমান কয়েকটি সমাধান খুব কাছাকাছি ছিল, তবে আমি যা চেয়েছিলাম ঠিক তা নয়। এই ফাংশনটি উভয় ধনাত্মক বা নেতিবাচক মানগুলির সাথে কাজ করে এবং সীমানা ক্ষেত্রে পরিচালনা করে।
function addDays(date, days) {
return new Date(
date.getFullYear(),
date.getMonth(),
date.getDate() + days,
date.getHours(),
date.getMinutes(),
date.getSeconds(),
date.getMilliseconds()
);
}
আমি গণিতটি মিলি সেকেন্ডে করতে পছন্দ করি। সুতরাং ব্যবহারDate.now()
var newDate = Date.now() + -5*24*3600*1000; // date 5 days ago in milliseconds
এবং যদি আপনি এটি ফর্ম্যাট পছন্দ
new Date(newDate).toString(); // or .toUTCString or .toISOString ...
দ্রষ্টব্য: Date.now()
পুরানো ব্রাউজারগুলিতে কাজ করে না (যেমন আমি মনে করি IE8)। পলিফিল এখানে ।
@ সকেটপায়ার আমার opালুতা নির্দেশ করেছে। সে হিসাবে তিনি বলেছিলেন "বছরের কোনও একদিনে সময় থাকে 23 ঘন্টা, এবং কিছু সময় সময় অঞ্চল নিয়মের কারণে"।
এর প্রসারিত করতে, উপরের উত্তরের ক্ষেত্রে দিবালোক সংরক্ষণের অপ্রতুল্যতা থাকবে যেখানে আপনি 5 দিনের আগে লাইটাল সেভিং পরিবর্তনের সাথে টাইমজোনটিতে লোকাল দিন গণনা করতে চান এবং আপনি
Date.now()
আপনাকে এখনকার লোকাল দেয় এখন সময়, বা.toString()
যেটি স্থানীয় তারিখটি দেয় এবং Date.now()
ইউটিসি- র বেস তারিখের সাথে সঙ্গতিপূর্ণ নয় এমন ব্যবহার useযাইহোক, আপনি যদি ইউটিসি-তে সবগুলি গণিত করছেন তবে এটি কাজ করে
উ: আপনি এখন (ইউটিসি) থেকে 5 দিন আগে ইউটিসির তারিখ চান
var newDate = Date.now() + -5*24*3600*1000; // date 5 days ago in milliseconds UTC
new Date(newDate).toUTCString(); // or .toISOString(), BUT NOT toString
বি। আপনি "এখন" ব্যতীত ইউটিসি বেস তারিখ দিয়ে শুরু করুন Date.UTC()
newDate = new Date(Date.UTC(2015, 3, 1)).getTime() + -5*24*3600000;
new Date(newDate).toUTCString(); // or .toISOString BUT NOT toString
আমি getDate () / setDate () পদ্ধতিতে একটি সমস্যা পেয়েছি তা হ'ল এটি খুব সহজেই সবকিছুকে মিলি সেকেন্ডে রূপান্তরিত করে এবং সিনট্যাক্সটি কখনও কখনও আমার অনুসরণ করা শক্ত হয়।
পরিবর্তে আমি 1 দিন = 86,400,000 মিলি সেকেন্ডের সত্যটি কাজে লাগাতে চাই।
সুতরাং, আপনার নির্দিষ্ট প্রশ্নের জন্য:
today = new Date()
days = 86400000 //number of milliseconds in a day
fiveDaysAgo = new Date(today - (5*days))
একটি যাদুমন্ত্র মত কাজ করে.
30/60/365 দিনের গণনা রোলিংয়ের জন্য আমি এই পদ্ধতিটি সর্বদা ব্যবহার করি।
আপনি মাস, বছর, ইত্যাদির সময়ের একক তৈরি করতে খুব সহজেই এটিকে এক্সট্রোপলেট করতে পারেন
আপনার তারিখটি অংশগুলিতে বিভক্ত করুন, তারপরে অ্যাডজাস্ট করা মানগুলির সাথে একটি নতুন তারিখ ফিরিয়ে দিন
function DateAdd(date, type, amount){
var y = date.getFullYear(),
m = date.getMonth(),
d = date.getDate();
if(type === 'y'){
y += amount;
};
if(type === 'm'){
m += amount;
};
if(type === 'd'){
d += amount;
};
return new Date(y, m, d);
}
মনে রাখবেন মাসগুলি শূন্য ভিত্তিক, তবে দিনগুলি হয় না। অর্থাৎ নতুন তারিখ (২০০৯, ১, ১) == 01 ফেব্রুয়ারী ২০০৯, নতুন তারিখ (২০০৯, ১, ০) == ৩১ জানুয়ারী ২০০৯;
দ্বিতীয় পরিবর্তনশীলটি ব্যবহার না করে, আপনি আপনার ব্যাক এক্স দিনের সাথে 7 এর জন্য প্রতিস্থাপন করতে পারবেন:
let d=new Date(new Date().getTime() - (7 * 24 * 60 * 60 * 1000))
function addDays (date, daysToAdd) {
var _24HoursInMilliseconds = 86400000;
return new Date(date.getTime() + daysToAdd * _24HoursInMilliseconds);
};
var now = new Date();
var yesterday = addDays(now, - 1);
var tomorrow = addDays(now, 1);
আমি তারিখের কারসাজির জন্য একটি ফাংশন তৈরি করেছি। আপনি যেকোন সংখ্যক দিন, ঘন্টা, মিনিট যোগ বা বিয়োগ করতে পারেন।
function dateManipulation(date, days, hrs, mins, operator) {
date = new Date(date);
if (operator == "-") {
var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
var newDate = new Date(date.getTime() - durationInMs);
} else {
var durationInMs = (((24 * days) * 60) + (hrs * 60) + mins) * 60000;
var newDate = new Date(date.getTime() + durationInMs);
}
return newDate;
}
এখন, পরামিতিগুলি পেরিয়ে এই ফাংশনটি কল করুন। উদাহরণস্বরূপ, আজ থেকে 3 দিনের আগে তারিখ পাওয়ার জন্য এখানে একটি ফাংশন কল রয়েছে।
var today = new Date();
var newDate = dateManipulation(today, 3, 0, 0, "-");
মোমেন্টজএস ব্যবহার করুন ।
function getXDaysBeforeDate(referenceDate, x) {
return moment(referenceDate).subtract(x , 'day').format('MMMM Do YYYY, h:mm:ss a');
}
var yourDate = new Date(); // let's say today
var valueOfX = 7; // let's say 7 days before
console.log(getXDaysBeforeDate(yourDate, valueOfX));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
শীর্ষস্থানীয় উত্তরগুলি আমার কোডটিতে একটি বাগ তৈরি করেছিল যেখানে মাসের প্রথম দিকে এটি চলতি মাসে ভবিষ্যতের তারিখ নির্ধারণ করে। আমি যা করেছি তা এখানে
curDate = new Date(); // Took current date as an example
prvDate = new Date(0); // Date set to epoch 0
prvDate.setUTCMilliseconds((curDate - (5 * 24 * 60 * 60 * 1000))); //Set epoch time
তারিখগুলি পরিচালনা করার একটি সহজ উপায় হ'ল মোমেন্ট.জে ব্যবহার করুন
আপনি ব্যবহার করতে পারেন add
। উদাহরণ
var startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
new_date.add(5, 'days'); //Add 5 days to start date
alert(new_date);
নীচে কোড স্নিপলেট সহ সমস্ত সংমিশ্রণ আমার পক্ষে সূক্ষ্মভাবে কাজ করেছিল, স্নিপেটটি কৌণিক -২ বাস্তবায়নের জন্য, যদি আপনাকে কিছু দিন যোগ করতে হয়, ধনাত্মক নম্বর দিয়ে যেতে হয়, যদি আপনার পাস নেতিবাচক নম্বরের পদক্ষেপের প্রয়োজন হয়
function addSubstractDays(date: Date, numberofDays: number): Date {
let d = new Date(date);
return new Date(
d.getFullYear(),
d.getMonth(),
(d.getDate() + numberofDays)
);
}
আমি তারিখের বাইরে ভাল মাইলেজ পাই get
d = new Date();
d.add(-10).days(); // subtract 10 days
নিস!
ওয়েবসাইটে এই সৌন্দর্য অন্তর্ভুক্ত:
ডেটজেস কেবল স্ট্রিংকে বিশ্লেষণ করে না, এটি এগুলিকে দুটি করে পরিষ্কার করে টুকরো টুকরো করে
যদি আপনি উভয়ই বেশ কয়েকটি দিন বিয়োগ করতে চান এবং আপনার তারিখটিকে মানব পাঠযোগ্য বিন্যাসে ফর্ম্যাট করতে চান তবে আপনার এমন একটি কাস্টম 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. Subtract 5 days
// 3. Format it
// 4. Output it
// ---------------------------------------------------------------------
document.body.innerHTML = DateHelper.format(DateHelper.addDays(new Date(), -5));
( এই ফিডলটিও দেখুন )
নিম্নলিখিত কোডটি দেখুন, বর্তমান তারিখ থেকে দিনগুলি বিয়োগ করুন। এছাড়াও, বাদ দেওয়া তারিখ অনুসারে মাস নির্ধারণ করুন।
var today = new Date();
var substract_no_of_days = 25;
today.setTime(today.getTime() - substract_no_of_days* 24 * 60 * 60 * 1000);
var substracted_date = (today.getMonth()+1) + "/" +today.getDate() + "/" + today.getFullYear();
alert(substracted_date);
তারিখটি সেট করার সময়, তারিখটি মিলি সেকেন্ডে রূপান্তরিত হয়, সুতরাং আপনাকে এটিকে আবার কোনও তারিখে রূপান্তর করতে হবে:
এই পদ্ধতিটিও বিবেচনায় নেওয়া, নতুন বছরের পরিবর্তন ইত্যাদি take
function addDays( date, days ) {
var dateInMs = date.setDate(date.getDate() - days);
return new Date(dateInMs);
}
var date_from = new Date();
var date_to = addDays( new Date(), parseInt(days) );
আপনি জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন।
var CurrDate = new Date(); // Current Date
var numberOfDays = 5;
var days = CurrDate.setDate(CurrDate.getDate() + numberOfDays);
alert(days); // It will print 5 days before today
পিএইচপি এর জন্য,
$date = date('Y-m-d', strtotime("-5 days")); // it shows 5 days before today.
echo $date;
আশা করি এটা তোমাকে সাহায্য করবে।
আমি মিলিসেকেন্ডে রূপান্তর করেছি এবং কাটা দিনগুলি অন্য মাস এবং বছর পরিবর্তিত হবে না এবং যৌক্তিক হবে
var numberOfDays = 10;//number of days need to deducted or added
var date = "01-01-2018"// date need to change
var dt = new Date(parseInt(date.substring(6), 10), // Year
parseInt(date.substring(3,5), 10) - 1, // Month (0-11)
parseInt(date.substring(0,2), 10));
var new_dt = dt.setMilliseconds(dt.getMilliseconds() - numberOfDays*24*60*60*1000);
new_dt = new Date(new_dt);
var changed_date = new_dt.getDate()+"-"+(new_dt.getMonth()+1)+"-"+new_dt.getFullYear();
আশা সাহায্য করে
var date = new Date();
var day = date.getDate();
var mnth = date.getMonth() + 1;
var fDate = day + '/' + mnth + '/' + date.getFullYear();
document.write('Today is: ' + fDate);
var subDate = date.setDate(date.getDate() - 1);
var todate = new Date(subDate);
var today = todate.getDate();
var tomnth = todate.getMonth() + 1;
var endDate = today + '/' + tomnth + '/' + todate.getFullYear();
document.write('<br>1 days ago was: ' + endDate );
আধুনিক জাভাস্ক্রিপ্ট ফাংশন সিনট্যাক্স ব্যবহার করে
const getDaysPastDate = (daysBefore, date = new Date) => new Date(date - (1000 * 60 * 60 * 24 * daysBefore));
console.log(getDaysPastDate(1)); // yesterday
এরকম কিছু চেষ্টা করুন
dateLimit = (curDate, limit) => {
offset = curDate.getDate() + limit
return new Date( curDate.setDate( offset) )
}
কারারডেট যে কোনও তারিখ হতে পারে
সীমা দিনের সংখ্যার পার্থক্য হতে পারে (ভবিষ্যতের জন্য ইতিবাচক এবং অতীতের জন্য নেতিবাচক)
এটি আপনাকে শেষ 10 দিনের ফলাফল দেবে 110% কাজ করে আপনি কোনও ধরণের সমস্যা পাবেন না
var date = new Date();
var day=date.getDate();
var month=date.getMonth() + 1;
var year=date.getFullYear();
var startDate=day+"/"+month+"/"+year;
var dayBeforeNineDays=moment().subtract(10, 'days').format('DD/MM/YYYY');
startDate=dayBeforeNineDays;
var endDate=day+"/"+month+"/"+year;
আপনি আপনার প্রয়োজনীয়তা অনুযায়ী বিয়োগের দিনগুলি পরিবর্তন করতে পারেন
var daysToSubtract = 3;
$.datepicker.formatDate('yy/mm/dd', new Date() - daysToSubtract) ;
var d = new Date();
document.write('Today is: ' + d.toLocaleString());
d.setDate(d.getDate() - 31);
document.write('<br>5 days ago was: ' + d.toLocaleString());