es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

bootstrap-datepicker: changeMonth devuelve un resultado de fecha diferente según cómo se active, incluyendo uno extraño.

¿Me estoy volviendo loco? Puedes cambiar la fecha en el selector de fecha básico de varias formas:

1) Haz clic en el nombre del mes y selecciona un mes
2) Haz clic en las flechas junto al nombre del mes para avanzar o retroceder un mes a la vez
3) Haz clic en un día del siguiente (o anterior) mes (los días “relleno” fuera del mes actual)

Obtienes diferentes fechas reportadas en el evento changeMonth (o de getformattedDate) según la forma en que cambias la fecha, pero una de ellas no tiene sentido.

Si haces clic en el nombre del mes y seleccionas un mes, regresa el primer día del nuevo mes, todo bien. Si haces clic en las flechas, devuelve el mismo día pero en el nuevo mes, por ejemplo, si estás en el 29 de noviembre, devolverá el 29 de diciembre. Todavía bien.

Sin embargo, si haces clic en un día del siguiente mes, devuelve la fecha original desde donde acabas de venir, por ejemplo, si estaba en el 29 de noviembre y haces clic en el 5 de diciembre, aún devuelve el 29 de noviembre.

$ (‘#calendar’). datepicker ({
autoclose: true,
format: “yyyy-mm-dd”,
updateViewDate: true,
todayHighlight: false,
immediateUpdates: true
})
.datepicker (‘update’, ‘2021-11-29’)
.on (‘changeDate’, function (e){
// console.log(“changeDate: triggered”, e);
})
.on (‘changeMonth’, function (e){
let updated_content = $ (‘#show_date’). val () + ‘\n’ + e.date.toString () + ” : ” + $ (‘#calendar’). datepicker (‘getFormattedDate’)
$ (‘#show_date’). val (updated_content)
});

He configurado un fiddle básico para ilustrar este comportamiento en https://jsfiddle.net/shaunhurley/k5ovtb9h/35/

¿Me estoy perdiendo de algo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    No, no estás volviendo loco. El comportamiento que describiste es correcto y esperado para bootstrap-datepicker. Cuando haces clic en un día del próximo mes, en realidad no cambia el mes, simplemente resalta ese día. Por lo tanto, el selector de fecha sigue reportando la fecha original. Este comportamiento está destinado, pero puede no ser intuitivo para algunos usuarios. Siempre es buena idea proporcionar instrucciones claras o tooltips para los usuarios para evitar confusiones.

Comments are closed.