Si configura un selector de fecha en un input[type="text"]
elemento, es posible que no obtenga una fecha con formato constante, especialmente cuando el usuario no sigue el formato de fecha para la entrada de datos.
Por ejemplo, cuando establece dateFormat como dd-mm-yy
y los tipos de usuario 1-1-1
. El selector de fecha lo convertirá Jan 01, 2001
internamente, pero al invocar val()
el objeto selector de fecha devolverá la cadena "1-1-1"
, exactamente lo que está en el campo de texto.
Esto implica que debe validar la entrada del usuario para asegurarse de que la fecha ingresada esté en el formato que espera o no permitir que el usuario ingrese las fechas de forma libre (prefiriendo el selector de calendario). Aun así, es posible forzar el código del selector de fecha para darle una cadena con el formato esperado:
var picker = $('#datepicker');
picker.datepicker({ dateFormat: 'dd-mm-yy' });
picker.val( '1-1-1' ); // simulate user input
alert( picker.val() ); // "1-1-1"
var d = picker.datepicker( 'getDate' );
var f = picker.datepicker( 'option', 'dateFormat' );
var v = $.datepicker.formatDate( f, d );
alert( v ); // "01-01-2001"
Sin embargo, tenga en cuenta que si bien el getDate()
método del selector de fecha devolverá una fecha, solo puede hacer mucho con la entrada del usuario que no coincide exactamente con el formato de fecha. Esto significa que, en ausencia de validación, es posible recuperar una fecha diferente de la que el usuario espera. Advertencia emptor .