क्या किसी को एक तारीख लेने का आसान तरीका पता है (जैसे आज) और वापस एक्स दिन जा रहा है?
इसलिए, उदाहरण के लिए, यदि मैं आज से 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));
क्षण पाओ। js सभी शांत बच्चे इसका उपयोग करते हैं। इसके और अधिक स्वरूपण विकल्प हैं, आदि
var n = 5;
var dateMnsFive = moment(<your date>).subtract(n , 'day');
वैकल्पिक! कोणीय बंधन के लिए जेएस दिनांक obj में परिवर्तित करें।
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 मुझे लगता है) में काम नहीं करता है। यहां पॉलिफिल ।
@socketpair ने मेरी सुस्ती को इंगित किया। जैसा कि वह कहते हैं कि "वर्ष में किसी दिन 23 घंटे होते हैं, और कुछ 25 समयक्षेत्र नियमों के कारण"।
उस पर विस्तार करने के लिए, ऊपर दिए गए जवाब में दिन के उजाले में गलतियाँ होंगी, जहाँ आप 5 दिन पहले LOCAL दिन की गणना दिन के समय में बदलावों के साथ करना चाहते हैं और आप
Date.now()
आपको वर्तमान LOCAL का समय देता है, या.toString()
जो स्थानीय दिनांक को लौटाता है और इसलिए Date.now()
UTC में आधार तिथि के साथ असंगत है । हालाँकि, यह काम करता है यदि आप अपने गणित को यूटीसी, जैसे में कर रहे हैं
A. अब से 5 दिन पहले आप UTC तिथि चाहते हैं (UTC)
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);
}
याद रखें कि महीने शून्य आधारित हैं, लेकिन दिन नहीं हैं। नई तिथि (2009, 1, 1) == 01 फरवरी 2009, नई तिथि (2009, 1, 0) == 31 जनवरी 2009;
दूसरे चर का उपयोग किए बिना, आप अपने पीछे के एक्स दिनों के साथ 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
दिनांक प्रबंधित करने का एक आसान तरीका है Moment.js
आप उपयोग कर सकते हैं 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);
मेरे लिए नीचे दिए गए कोड स्निपलेट के साथ सभी संयोजनों ने ठीक काम किया, स्निपेट कोणीय -2 कार्यान्वयन के लिए है, यदि आपको दिनों को जोड़ने की आवश्यकता है, तो पॉजिटिव नंबरऑफ़डेज़ पास करें, यदि आपको पास नेगेटिव नंबरोफैड्स को सॉल्व करने की आवश्यकता है
function addSubstractDays(date: Date, numberofDays: number): Date {
let d = new Date(date);
return new Date(
d.getFullYear(),
d.getMonth(),
(d.getDate() + numberofDays)
);
}
मुझे अच्छा माइलेज मिल रहा है। तारीख:
d = new Date();
d.add(-10).days(); // subtract 10 days
अच्छा!
वेबसाइट में यह सुंदरता शामिल है:
Datejs केवल तार को पार्स नहीं करता है, यह उन्हें दो में सफाई से काट देता है
यदि आप दोनों को कई दिनों तक घटाना चाहते हैं और अपनी तिथि को मानव पठनीय प्रारूप में प्रारूपित करना चाहते हैं, तो आपको एक कस्टम 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);
दिनांक सेट करते समय, दिनांक मिलीसेकंड में परिवर्तित हो जाता है, इसलिए आपको इसे वापस दिनांक में परिवर्तित करना होगा:
यह विधि नए साल के बदलाव आदि को भी ध्यान में रखती है।
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
PHP के लिए,
$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());