Estoy usando un selector de fechas que da una fecha en el formato dom 7 de julio 00:00:00 EDT 2013. Aunque el mes dice julio, si hago un mes, me da el mes anterior.
var d1 = new Date("Sun Jul 7 00:00:00 EDT 2013");
d1.getMonth());//gives 6 instead of 7
¿Qué estoy haciendo mal?
javascript
date
desarrollador747
fuente
fuente
getYear()
! ;-)Respuestas:
Porque getmonth () comienza desde 0. Es posible que desee tener
d1.getMonth() + 1
que lograr lo que desea.fuente
d1.getMonth() < 12 ? d1.getMonth() + 1 : 1
; de lo contrario, diciembre sería el 13, ¿no?getMonth()
la función está basada en cero indexado. Necesitas hacerd1.getMonth() + 1
Recientemente utilicé la biblioteca Moment.js y nunca miré hacia atrás. ¡Intentalo!
fuente
Suponiendo que use su variable
El mes requiere un +1 para ser exacto, comienza a contar en 0
Por el contrario ... estos métodos NO necesitan un plus 1
Y note que
.getDate()
NO lo es .getDay()
Espero que esto ayude
Sospecho que estos métodos carecen de consistencia por razones históricas
fuente