Formato de fecha incorrecto al utilizar DatePicker

publicado por: Anonymous

Tengo un campo DateTime con su BootstrapDatePicker como el siguiente:

 <div class='input-group date' id='datetimepicker1'>
       @Html.TextBoxFor(m => m.DatePicker, new { @class = "form-control" })
        @Html.ValidationMessageFor(m => m.DatePicker)                  
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
       </span>
         </div>

Y su respectivo Javascript:

 $(document).ready(function () {
            //DatePicker
            $('#datetimepicker1').datetimepicker({
                defaultDate: new Date(),
                format: 'MM/DD/YYYY',
                minDate: new Date(),
                locale: 'es'
            });

Modelo:

[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd.MM.yy}", ApplyFormatInEditMode = true)]
        [Required(ErrorMessage = "Formato incorrecto")]
        public DateTime? DatePicker { get; set; }

El problema es al enviar la fecha. me acepta valores desde 03/1/2018 al 03/12/2018 funciona correctamente, pero si mando 03/13/2018 la página solamente me devuelve un BadRequest. El formato de mi fecha está en formato inglés. No entiendo porque está fallando al momento de enviarle del valor 13 en adelante. Espero me puedan ayudar. Gracias

solución

Puedes manejar formatos a tu gusto en tus fechas tanto del lado del backend como de frontend. Pero al momento de trabajar el la fecha como tal, lo más recomendable es que conserves su tipo de Datetime. Con datepicker utiliza su función de getDate.

let fecha = $('#datetimepicker1').datepicker("getDate");

Si aún de utilizar esta función persiste las fechas cambiadas entonces aplica .toISOString() a tu Datetime; inclusive puedes llamarlo en la misma linea

let fecha = $('#datetimepicker1').datepicker("getDate").toISOString()
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *