2014-04-15 8 views
34

मेरे पास निम्न स्क्रिप्ट जो अगले दिन वापस लाती है:जावास्क्रिप्ट, अगले दिन की तारीख मिल

today.getDate()+1; 

मैं (महीने के अगले दिन हो रही है:

function today(i) 
    { 
     var today = new Date(); 
     var dd = today.getDate()+1; 
     var mm = today.getMonth()+1; 
     var yyyy = today.getFullYear(); 

     today = dd+'/'+mm+'/'+yyyy; 

     return today; 
    } 

इस का उपयोग करके उदाहरण के लिए आज 16 मिलेगा)।

मेरे समस्या यह है कि इस वापस लौटने 32/4/2014

अंत वहाँ एक रास्ता मैं अगले दिन के लिए गारंटी सही दिनांक प्राप्त कर सकते हैं है महीने के अंतिम दिन पर हो सकता है, और इसलिए है ?

+0

http://stackoverflow.com/questions/1160827/javascript-get-next-day-of-a-string – dikesh

उत्तर

48

आप उपयोग कर सकते हैं:

var tomorrow = new Date(); 
tomorrow.setDate(today.getDate()+1); 

उदाहरण के लिए, के बाद से वहाँ अप्रैल में 30 दिनों कर रहे हैं, निम्नलिखित कोड उत्पादन मई 1 होगा:

var day = new Date('Apr 30, 2000'); 
console.log(day); // Apr 30 2000 

var nextDay = new Date(day); 
nextDay.setDate(day.getDate()+1); 
console.log(nextDay); // May 01 2000  

fiddle देखें।

+7

अगर यह प्रदर्शन में मदद करता है मैं नहीं जानता, लेकिन यह कर सकते हैं 'tomorrow.setDate (tomorrow.getDate() + 1) का उपयोग करके सरलीकृत किया जाए;' –

+0

यह दृष्टिकोण महीने को अपडेट नहीं करेगा।तो अगर आप महीने के लिए पूछते हैं तो यह अप्रैल में वापस आ जाएगा, उदाहरण में – marimaf

+0

@marimaf - यह दृष्टिकोण महीने को अपडेट करता है। उनका उदाहरण थोड़ा गड़बड़ था क्योंकि यह उसी महीने होने पर निर्भर था जब उसने यह जवाब दिया था (मैंने इसे ठीक करने के लिए अभी अपडेट किया है) लेकिन दृष्टिकोण काम करता है। – BryanGrezeszak

0

दिनांक वस्तु का उपयोग करने की गारंटी देता है। यहाँ Incrementing a date in JavaScript से

new Date(2014,03,31)  // Thu May 01 2014 00:00:00 
+2

ध्यान दें कि "0" से शुरू होने वाले संख्या अक्षर अंडाकार हैं और उन्हें बहिष्कृत कर दिया गया है। तो यह कोड सख्त मोड में त्रुटि उत्पन्न कर सकता है। और, जो आपने लिखा है वह 04 के बजाय 03 है ... – tsh

+0

@tsh - यह शून्य अनुक्रमित है। तो 3 अप्रैल के लिए सही है। – BryanGrezeszak

19

कॉपी-पेस्ट: उदाहरण के लिए आप April 31st बनाने की कोशिश करता है, तो

आप के लिए

तीन विकल्प:

सिर्फ जावास्क्रिप्ट का दिनांक वस्तु (कोई पुस्तकालयों) का उपयोग करना:

var today = new Date(); 
var tomorrow = new Date(today.getTime() + (24 * 60 * 60 * 1000)); 

या यदि आपको तिथि में जगह बदलने की बजाय कोई बात नहीं है (बजाय एक नई तिथि बनाने):

var dt = new Date(); 
dt.setTime(today.getTime() + (24 * 60 * 60 * 1000)); 

संपादित करें: यह भी देखें जिगर के जवाब और नीचे डेविड की टिप्पणी: var कल = new Date(); कल .setDate (कल .getDate() + 1);

का उपयोग MomentJS:

var today = moment(); 
var tomorrow = moment(today).add('days', 1); 

(खबरदार कि ऐड, उदाहरण आप उस पर फोन करने के बजाय एक नया उदाहरण लौटने को संशोधित करता है तो today.add ('दिन', 1) आज संशोधित करेगा । यही कारण है कि हम वर पर एक क्लोनिंग सेशन कल = के साथ शुरू है ....)

DateJS का उपयोग करना है, लेकिन यह एक लंबे समय में अद्यतन नहीं किया गया:

var today = new Date(); // Or Date.today() 
var tomorrow = today.add(1).day(); 
भविष्य में

उपयोग खोज

+0

कृपया उद्धरण चिह्नों को इस तरह चिह्नित करें! – Bergi

+2

सी और पी उत्तरों की तुलना में डुप्लिकेट के रूप में प्रश्न को बंद करना आसान और बेहतर होगा। – Bergi

+1

@ बर्गि विशेष रूप से जब से कॉपी किया गया था तब से जवाब बदल गया है ... – Michael

संबंधित मुद्दे