2009-03-03 12 views
19

Lütfen, bir önceki ayın geçmiş tarihini JavaScript'teki geçerli tarihine göre bulmak için kodu paylaş. Örneğin, eğer mevcut tarih 25 Ocak 2009 ise, sonuç olarak 1 Aralık 2008'i almalıyım.Bir önceki ayın başlangıcındaki tarihini güncelleyin.

+0

Olası çoğaltmak için Ocak hareketli http://stackoverflow.com/questions/605113/ ([javascript önceki ayın ilk gününü bulabilir] Bir önceki-bir-önceki-ay-in-javascript bulmak) –

+0

Bunu kontrol edin: http://stackoverflow.com/questions/605113/find-first-day-of-previous-month-in-javascript – Learning

cevap

49

Kolay

Date.prototype.SubtractMonth = function(numberOfMonths) { 
var d = this; 
d.setMonth(d.getMonth() - numberOfMonths); 
d.setDate(1); 
return d; 
} 

$(document).ready(function() { 
    var d = new Date(); 
    alert(d.SubtractMonth(1)); 
}); 

Andrew: Ben bir örnek toplamak üzere çıktığı gelmiş

var x = new Date(); 
    x.setDate(1); 
    x.setMonth(x.getMonth()-1); 
güncellenmesi yıla
+0

yıl değiştiğinde özlüyor mu? – Learning

+1

Hayır, bu tarih otomatik olarak ayarlanacak –

+1

Bu, kendi takvimi aritmatiği ile uğraşmak yerine yerel tarih yöntemleriyle bunu yapmanın nedeni budur. aşk JS :) – annakata

2

Fırsatlar Aralık

var prevMonth = function(dateObj) { 
 
\t var tempDateObj = new Date(dateObj); 
 

 
\t if(tempDateObj.getMonth) { 
 
\t \t tempDateObj.setMonth(tempDateObj.getMonth() - 1); 
 
\t } else { 
 
\t \t tempDateObj.setYear(tempDateObj.getYear() - 1); 
 
\t \t tempDateObj.setMonth(12); 
 
\t } 
 

 
\t return tempDateObj 
 
}; 
 

 
var wrapper = document.getElementById('wrapper'); 
 

 
for(var i = 0; i < 12; i++) { 
 
\t var x = new Date(); 
 
    var prevDate = prevMonth(x.setMonth(i)); 
 
\t var div = document.createElement('div'); 
 
    div.textContent = 
 
    "start month/year: " + i + "/" + x.getFullYear() + 
 
    " --- prev month/year: " + prevDate.getMonth() + 
 
    "/" + prevDate.getFullYear() + 
 
    " --- locale prev date: " + prevDate.toLocaleDateString(); 
 
    wrapper.appendChild(div); 
 
}
<div id='wrapper'> 
 
</div>