2012-02-01 17 views
5
में पिछले महीने के अंतिम दिन कैसे प्राप्त करें

मैं वर्तमान दिन पाने के लिए निम्नलिखित कोड है:जावास्क्रिप्ट या JQuery

var month=new Array(12); 
month[0]="January"; 
month[1]="February"; 
month[2]="March"; 
month[3]="April"; 
month[4]="May"; 
month[5]="June"; 
month[6]="July"; 
month[7]="August"; 
month[8]="September"; 
month[9]="October"; 
month[10]="November"; 
month[11]="December"; 

var d = new Date(); 
var curr_date; 
if (d.getDate() == 1) 
{ 
    curr_date = d.getDate(); 
} 
else 
{ 
    curr_date = d.getDate() - 1; 
} 

var curr_month = d.getMonth() + 1; //months are zero based 
var curr_year = d.getFullYear(); 
var message_day = curr_year + "_" + curr_month + "_" + curr_date; 
var sql_day = month[curr_month - 1].substring(0,3) + curr_date.toString() + curr_year.toString(); 

if (curr_date == "1") 
    { 
     document.write(sql_day + " " + message_day); 
    } 

यह वर्तमान दिन प्राप्त करने के लिए महान है, लेकिन अब मैं प्राप्त करने की आवश्यकता पिछले महीने का आखिरी दिन यदि यह एक नए महीने की शुरुआत है।

अभी इस जाएगा उत्पादन:

Feb12012 2012_2_1 

लेकिन क्या मैं उत्पादन की जरूरत है:

Jan312012 2012_1_31 

धन्यवाद

उत्तर

14
var d=new Date(); // current date 
d.setDate(1); // going to 1st of the month 
d.setHours(-1); // going to last hour before this date even started. 

अब d पिछले महीने की अंतिम तिथि है। d.getMonth() और d.getDate() इसे प्रतिबिंबित करेगा।

यह किसी भी तारीख एपीआई पर काम करना चाहिए जो सी time.h लपेटता है। this

+0

धन्यवाद, यह बहुत अच्छा काम करता है। –

1

बस के दिन के अनुसार महीने से एक घटाना:

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

यदि "डी खाया "संपत्ति (दिन का महीना) 1 है, फिर इसे शून्य पर सेट करने से आपको पिछले महीने के अंतिम दिन का प्रतिनिधित्व करने की तारीख मिल जाएगी। आपका कोड पहले से ही बहुत करीब था; आप बस एक नई तिथि उदाहरण का निर्माण कर सकते हैं:

if (d.getDate() === 1) 
    curr_date = new Date().setDate(0).getDate(); 

वास्तव में तुम भी एक "अगर" बयान की जरूरत नहीं है:

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

और उस महीने के किसी भी दिन के लिए काम करेंगे।

+0

किसी कारण से, मुझे आउटपुट प्राप्त नहीं हो रहा है: http://jsfiddle.net/gT6eZ/1/ –

11

देखें यह मेरे लिए पूरी तरह से काम करता है:

var date = new Date(); 
date.setDate(0); 

तारीख अब पिछले महीने के अंतिम दिन होता है।

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