2009-03-03 16 views
19

Por favor, cualquier persona compartir el código para encontrar la primera fecha del mes anterior a la fecha actual en JavaScript. Por ejemplo, si la fecha actual es el 25 de enero de 2009, debería obtener el 1 de diciembre de 2008 como resultado.primera fecha del mes anterior a la fecha actual en JavaScript

+0

posible duplicado [Find primer día del mes anterior en javascript] (http://stackoverflow.com/questions/605113/ encontrar-primero-día-de-anterior meses en Javascript) –

+0

Comprobar esto: Hola Andrew http://stackoverflow.com/questions/605113/find-first-day-of-previous-month-in-javascript – Learning

Respuesta

3

Comprobar este enlace:

http://blog.dansnetwork.com/2008/09/18/javascript-date-object-adding-and-subtracting-months/

EDIT: he granjeado un ejemplo:

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

+0

, la solución que dijo regresa exactamente 30 días desde la fecha actual. Necesito la primera fecha del mes anterior, independientemente de cualquier fecha en el mes actual. –

+0

gracias amigo !!!! lo tengo –

+0

link is broken :( –

49

bastante sencillo, con el date methods:

var x = new Date(); 
    x.setDate(1); 
    x.setMonth(x.getMonth()-1); 
+0

excepto que se pierde cuando los cambios de año? n – Learning

+1

que hace que el auto se ajustará la fecha –

+1

esto es por qué haces esto con los métodos nativos fecha en lugar de jugar un poco con su propio calendario de aritmética. Dios me JS amor :) – annakata

2

Se ocupa de la actualización año cuando se mueve de enero a diciembre

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>

Cuestiones relacionadas