Angular JS: сборщик диапазона дат выбирает дату предыдущего дня - PullRequest
3 голосов
/ 27 февраля 2020

Я использую angular средство выбора даты, чтобы выбрать одну дату, и вот как выглядит мой html:

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

Теперь, когда я выбираю дату, когда появляется календарь, он выбирает дата явно, но когда она отправляется в бэкэнд, это на самом деле дата за один день. то есть, если я выберу 28-02-2020, он отправит 27-02-2020. Кроме того, я просто хочу, чтобы средство выбора даты отправляло только дату, в настоящее время оно отправляет что-то вроде этого:

2020-02-27T19:00:00.000Z 

Что я здесь не так делаю? Любая помощь?

Ответы [ 2 ]

4 голосов
/ 04 марта 2020

С AngularJS, сборщики даты должны установить часовой пояс ng-model-options в UT C:

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

Для получения дополнительной информации см.

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>
1 голос
/ 03 марта 2020

Вы можете добавить свой часовой пояс к дате, используя следующий способ:

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

'd' should be the correct date

или

Вы также можете проверить, просто выполнив, как 'Your Date'.toISOString()

...