Estoy usando el selector de fecha angular para elegir una fecha y así es como se ve mi html:

<input date-range-picker ng-model="model" options="{singleDatePicker: true}"
       class="form-control date-picker" type="text"/>

Ahora, cuando selecciono una fecha en la que aparece el calendario, aparentemente selecciona la fecha, pero cuando se envía al backend, en realidad es la fecha de un día antes. es decir, si selecciono 28-02-2020, enviará 27-02-2020. Además, solo quiero que el selector de fechas envíe solo la fecha, actualmente lo envía de la siguiente manera:

2020-02-27T19:00:00.000Z 

¿Qué estoy haciendo mal aquí? ¿Alguna ayuda?

3
Saani 27 feb. 2020 a las 15:07

2 respuestas

La mejor respuesta

Puede agregar su zona horaria hasta la fecha utilizando la siguiente manera,

var d = new Date('yourDate');
d.setMinutes( d.getMinutes() + d.getTimezoneOffset() );

'd' should be the correct date

O

También puede verificar simplemente haciendo como 'Your Date'.toISOString()

1
Pushprajsinh Chudasama 3 mar. 2020 a las 09:27

Con AngularJS, los recolectores de fechas deben establecer la zona horaria ng-model-options en UTC:

<input type="date" ng-model="pickedDate" ng-model-options="{timezone: 'utc'}">

Para obtener más información, consulte

La DEMO

<script src="//unpkg.com/angular/angular.js"></script>

<body ng-app>
    <h1>Hello Plunker!</h1>
    <input type="date" ng-model="pickedDate" ng-model-options="{timezone: 'utc'}">
    <br>
    pickedDate={{pickedDate}}
</body>
4
georgeawg 4 mar. 2020 a las 18:10