w3schools tag tab page change javascript jquery

javascript - tag - title of page html



¿Cómo obtener 30 días antes de la fecha actual? (9)

Tengo un cuadro de entrada del calendario de inicio y un cuadro de entrada del calendario de fin. Queremos que los valores predeterminados inicien el cuadro de entrada del calendario 30 días antes de la fecha actual y que el cuadro de entrada del calendario final sea la fecha actual. Aquí está mi fecha vars.

var today = new Date(), dd = today.getDate(), mm = today.getMonth(), yyyy = today.getFullYear(), month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October" "November", "December"], startdate = month[mm] + ", " + yyyy.toString();

La fecha de finalización sería algo como var enddate = startdate - 30; Obviamente esto no funcionará.

Entonces, si la fecha actual es el 30 de diciembre de 2011, me gustaría que la fecha de inicio se lea el 1 de diciembre de 2011.

EDIT: Mi pregunta fue respondida ... más o menos. Date.today(); y Date.today().add(-30); Trabajo pero necesito la fecha en el formato del January 13, 2012 de January 13, 2012 . No Fri Jan 13 2012 10:48:56 GMT -055 (EST) . ¿Alguna ayuda?

MÁS EDICIÓN: A partir de este escrito es el 2018. Solo usa Moment.js . Es el mejor.


Aquí hay una solución fea para ti:

var date = new Date(new Date().setDate(new Date().getDate() - 30));


Esta es una versión ES6

let date = new Date() let newDate = new Date(date.setDate(date.getDate()-30)) console.log(newDate.getMonth()+1 + ''/'' + newDate.getDate() + ''/'' + newDate.getFullYear() )


Fácil.

let days=30; this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000);

ISOFormato?

let days=30; this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString();



Javascript puede manejarlo sin ninguna librería externa.

var today = new Date(); var dateLimit = new Date(new Date().setDate(today.getDate() - 30)); document.write(today + "<br/>" + dateLimit)


Prefiero el momento js

startDate = moment().subtract(30, ''days'').format(''LL'') // January 29, 2015 endDate = moment().format(''LL''); // February 28, 2015


Prueba esto

var today = new Date() var priorDate = new Date().setDate(today.getDate()-30)

Como lo señaló @Neel, este método retorna en formato de marca de tiempo de Javascript. Para volver a convertirlo en objeto de fecha, debe pasar lo anterior a un nuevo objeto Fecha; new Date(priorDate) .


Yo uso date.js. Maneja esto fácilmente y se encarga de toda la maldad del año bisiesto.


startDate = new Date(today.getTime() - 30*24*60*60*1000);

El método .getTime() devuelve una marca de tiempo JS estándar (milisegundos desde el 1 de enero de 1970) en la que puede usar operaciones matemáticas regulares, que se pueden enviar al objeto Date directamente.