जवाबों:
var date = new Date();
date ; //# => Fri Apr 01 2011 11:14:50 GMT+0200 (CEST)
date.setDate(date.getDate() - 1);
date ; //# => Thu Mar 31 2011 11:14:50 GMT+0200 (CEST)
बहुत कुशल नहीं, लेकिन ऑनलाइनर के रूप में:
var yesterday = new Date(new Date().setDate(new Date().getDate()-1));
उपरोक्त तीन Dateऑब्जेक्ट बनाता है जो अनावश्यक रूप से बेकार है। यह एक ही पल के लिए कम किया जा सकता है:
var yesterday = (function(){this.setDate(this.getDate()-1); return this})
.call(new Date)
या, यदि आप पसंद करते हैं:
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
या, यदि आप तीर फ़ंक्शन के साथ ES6 पसंद करते हैं:
let yesterday = ( d => new Date(d.setDate(d.getDate()-1)) )(new Date);
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
इसे इस्तेमाल करे
var d = new Date();
d.setDate(d.getDate() - 1);
सबसे आसान पार ब्राउज़र समाधान के लिए कोई जवाब नहीं है
कल ठीक उसी समय को खोजने के लिए:
var yesterday = new Date(Date.now() - 86400000); // that is: 24 * 60 * 60 * 1000
अगर आप निर्भरता से मुक्त होना चाहते हैं, अन्यथा मैं http://momentjs.com का उपयोग करने की सलाह दूंगा
प्रश्न को सामान्य बनाने और अन्य भिन्न गणनाओं का उपयोग करने के लिए:
var yesterday = new Date((new Date()).valueOf() - 1000*60*60*24);
यह एक पूर्णांक के रूप में "अब" के मूल्य के आधार पर एक नई तिथि ऑब्जेक्ट बनाता है जो एक दिन घटाकर मिलीसेकंड में यूनिक्स युग का प्रतिनिधित्व करता है।
दो दिन पहले:
var twoDaysAgo = new Date((new Date()).valueOf() - 1000*60*60*24*2);
एक घंटा पहले:
var oneHourAgo = new Date((new Date()).valueOf() - 1000*60*60);
new Date(Date.parse(new Date()) - 86400000)। हालाँकि मुझे Date.now पसंद है () इसलिए शायद मैं इसके बजाय कोशिश करूँगा। यह एक अतिरिक्त तारीख बचाएगा।
मैं पल पुस्तकालय का उपयोग करता हूं , यह बहुत लचीला और उपयोग में आसान है।
आपके मामले में:
let yesterday = moment().subtract(1, 'day').toDate();
subtractइसके बजाय आप बेहतर उपयोग करेंगेadd
new Date(new Date().setDate(new Date().getDate()-1))
//Create a date object using the current time
var now = new Date();
//Subtract one day from it
now.setDate(now.getDate()-1);
var today = new Date();
var yesterday1 = new Date(new Date().setDate(new Date().getDate() - 1));
var yesterday2 = new Date(Date.now() - 86400000);
var yesterday3 = new Date(Date.now() - 1000*60*60*24);
var yesterday4 = new Date((new Date()).valueOf() - 1000*60*60*24);
console.log("Today: "+today);
console.log("Yesterday: "+yesterday1);
console.log("Yesterday: "+yesterday2);
console.log("Yesterday: "+yesterday3);
console.log("Yesterday: "+yesterday4);
यह कल प्रातः 00:00 मिनट पर सटीकता के साथ उत्पन्न होगा
var d = new Date();
d.setDate(d.getDate() - 1);
d.setTime(d.getTime()-d.getHours()*3600*1000-d.getMinutes()*60*1000);
d.setHours(0,0,0,0);
चाल चलेगा
d.setHours(-1,0,0,0):। यह कल की तारीख को वापस आ जाएगा, लेकिन यह वह समय नहीं हो सकता है जैसा आप चाहते हैं (23:00:00)
यह कोशिश करो, मेरे लिए काम करता है:
var today = new Date();
var yesterday = new Date(today.setDate(today.getDate() - 1)); `
यह मुझे कल के लिए एक दिनांक ऑब्जेक्ट वापस मिल गया
var yesterday = new Date(); yesterday.setDate(today.GetDate() - 1)तो आप आज और कल दोनों का उपयोग कर सकते हैं
यहाँ एक लाइनर है जिसका उपयोग टेक्स्ट में फॉर्मेट YYYY-MM-DD में कल की तारीख पाने और टाइमज़ोन ऑफसेट को संभालने के लिए किया जाता है।
new Date(Date.now() - 1 * 86400000 - new Date().getTimezoneOffset() * 60000).toISOString().split('T')[0]
यह समय पर वापस लौटने के लिए, दिन में एक्स-रे बदल सकता है। समय आदि को शामिल करने के लिए
console.log(Date())
console.log(new Date(Date.now() - 1 * 86400000 - new Date().getTimezoneOffset() * 60000).toISOString().split('T')[0]); // "2019-11-11"
console.log(new Date(Date.now() - 1 * 86400000 - new Date().getTimezoneOffset() * 60000).toISOString().split('.')[0].replace('T',' ')); // "2019-11-11 11:11:11"
// that is: [dates] * 24 * 60 * 60 * 1000 - offsetinmin * 60 * 1000 // this is: [dates] * 24 * 60 * 60 * 1000 - offsetinmin * 60 * 1000
यदि आप दोनों को कल की तारीख प्राप्त करना चाहते हैं और उस तारीख को मानव पठनीय प्रारूप में प्रारूपित करना चाहते हैं, तो एक कस्टम 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 1 day
// 3. Format it
// 4. Output it
// ---------------------------------------------------------------------
document.body.innerHTML = DateHelper.format(DateHelper.addDays(new Date(), -1));
( इस फिडेल को भी देखें )
आप क्षणिकाओं का उपयोग कर सकते हैं यह बहुत मददगार है आप इस पुस्तकालय के साथ बहुत सी चीजें प्राप्त कर सकते हैं।
वर्तमान समय के साथ कल की तारीख प्राप्त करें
moment().subtract(1, 'days').toString()
कल की तारीख के साथ शुरुआत करें
moment().subtract(1, 'days').startOf('day').toString()
"Date.now () - 86400000" डेलाइट सेविंग एंड डे पर काम नहीं करेगा (जिसमें उस दिन 25 घंटे हैं)
एक अन्य विकल्प क्लोजर का उपयोग करना है:
var d = new goog.date.Date();
d.add(new goog.date.Interval(0, 0, -1));
getDateमहीने के दिन (जैसे: 1 - 31) के रिटर्न के रूप में विफल होगा, लेकिन वास्तवsetDate(0)में पिछले महीने के अंतिम दिन की तारीख निर्धारित करता है। हालांकि यह सभी ब्राउज़रों में काम करता है?