2008-08-28 10 views
14

मुझे 1 दिन तक जावास्क्रिप्ट दिनांक कम करने की आवश्यकता है, ताकि यह महीनों/वर्षों में सही ढंग से वापस हो सके। यही है, अगर मेरे पास 'आज' की तारीख है, तो मैं 'कल' की तारीख प्राप्त करना चाहता हूं।1 दिन तक जावास्क्रिप्ट में दिनांक कम करने का सबसे आसान तरीका क्या है?

ऐसा करने पर हमेशा आवश्यक से अधिक कोड लेना प्रतीत होता है, इसलिए मुझे आश्चर्य है कि क्या कोई आसान तरीका है।

ऐसा करने का सबसे आसान तरीका क्या है?

[संपादित करें:। बस नीचे दिए गए एक जवाब में भ्रम से बचने के लिए, यह एक जावास्क्रिप्ट सवाल है, नहीं एक जावा एक है]

+0

यहाँ एक समारोह है कि दोनों incrementing और decrementing क्या कर सकते हैं/2 9 1 9 863/4021614 –

उत्तर

27

var d = new Date(); 
 
d.setDate(d.getDate() - 1); 
 

 
console.log(d);

+4

यह गलत दिन वापस करेगा। यूटीसी -03: 00 के तहत, var d = new date (2014,9,19) d.setDate (d.getDate() - 1) के लिए जांचें; // 17 अक्टूबर –

+1

वापस आ जाएगा यह गलत वर्ष भी देता है। नई तिथि (नई तिथि()। getDate() - 1) मेरे लिए 1 9 6 9 रिटर्न –

3

getDate()-1 करना चाहिए चाल

त्वरित उदाहरण:

var day = new Date("January 1 2008"); 
day.setDate(day.getDate() -1); 
alert(day); 
1

setDate(dayValue)

dayValue 1 से 31 एक पूर्णांक, महीने के दिन का प्रतिनिधित्व करता है।

से https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setDate

व्यवहार आपकी समस्या (और मेरा) को सुलझाने

विनिर्देश सीमा से बाहर हो रहा है।

क्या आवश्यक लगता है adddate(), addMonth(), addYear() ... फ़ंक्शन।

3
origDate = new Date(); 
decrementedDate = new Date(sDate.getTime() - (86400 * 1000)); 

console.log(decrementedDate); 
+0

यह ठीक काम करता है! –

3
day.setDate(day.getDate() -1); //will be wrong 

यह गलत दिन वापस आ जाएगी। यूटीसी -03 के तहत: 00, के लिए

var d = new Date(2014,9,19); 
d.setDate(d.getDate()-1);// will return Oct 17 

बेहतर उपयोग की जाँच करें: http://stackoverflow.com/a:

var n = day.getTime(); 
n -= 86400000; 
day = new Date(n); //works fine for everything 
संबंधित मुद्दे