Tengo un cuadro de entrada de calendario de inicio y un cuadro de entrada de calendario de fin. Queremos que el cuadro de entrada del calendario de inicio predeterminado sea 30 días antes de la fecha actual y que el cuadro de entrada del calendario final sea la fecha actual. Aquí está mi cita 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 así 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 fuera el 1 de diciembre de 2011.
EDITAR: Mi pregunta fue respondida ... algo así. Date.today();
y Date.today().add(-30);
trabajo, pero necesito la fecha en formato January 13, 2012
. No Fri Jan 13 2012 10:48:56 GMT -055 (EST)
. ¿Alguna ayuda?
MÁS EDITAR: Al momento de escribir estas líneas , es 2018. Solo use Moment.js . Es el mejor.
fuente
Respuestas:
Intente usar la excelente biblioteca de fechas de JavaScript de Datejs (el original ya no se mantiene, por lo que puede estar interesado en esta bifurcación mantenida activamente ):
[Editar]
Consulte también la excelente biblioteca de fechas de JavaScript Moment.js :
fuente
moment( moment().subtract(30, 'days') ).format("YYYY-MM-DD")
moment()
enfoque y agregué eltoDate()
método para recuperar el objeto de fecha de JavaScript. ¡Gracias!Prueba esto
Como señaló @Neel, este método devuelve en formato de marca de tiempo Javascript. Para volver a convertirlo en un objeto de fecha, debe pasar lo anterior a un nuevo objeto de fecha;
new Date(priorDate)
.fuente
new Date(priorDate)
setDate()
a unDate
objeto. Sin embargo, es imposible diagnosticar sin ver su código.Aquí tienes una fea solución:
fuente
El
.getTime()
método 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 pueden retroalimentarse directamente al objeto Date.fuente
Obtenga los próximos 30 días a partir de hoy
Obtenga el formulario de los últimos 30 días hoy
fuente
Javascript puede manejarlo sin bibliotecas externas.
fuente
Fácil.
(Using Vanilla JS)
ISOFormat?
fuente
Yo uso date.js . Maneja esto fácilmente y se ocupa de todas las maldades de los años bisiestos.
fuente
Preferiré el momento js
fuente
Esta es una versión ES6
fuente
Puede hacerlo simplemente a través de 1 línea de código usando moment en Node JS. :)
No quiero formato UTC, MÁS FÁCIL: P
fuente
Si no está inclinado a momentjs, puede usar esto:
let x = new Date()
x.toISOString(x.setDate(x.getDate())).slice(0, 10)
Básicamente, obtiene la fecha actual (valor numérico de la fecha del mes actual) y luego establece el valor. Luego se convierte en formato ISO del que corte la fecha numérica pura (es decir, 2019-09-23)
Espero que ayude a alguien.
fuente
let today = new Date()
let last30Days = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 30)
last30Days
estará en el objeto de fechafuente