Как работать с md-datepicker и моментом? - PullRequest
0 голосов
/ 19 апреля 2019

В моем приложении я использую переменные $ scope типа momemt. Я буду использовать md-datepicker из Angular Materialjs для изменения дат в ng-модели.

md-datepicker работают только с типом даты, который я могу конвертировать с момента, но после изменения данных на md-datepicker $scope переменные меняют тип с момента на дату.

Как преобразовать результат md-datepicker Тип даты обратно в тип момента? Это необходимо для использования в других функциях, которые используют момент.

<md-datepicker ng-model="momentfrom" md-open-on-focus="true" name="dateFrom" >
</md-datepicker>

Переменная momentfrom после работы с md-datepicker меняет тип на Date, который необходимо преобразовать в момент.

app.config(['$mdDateLocaleProvider', function ($mdDateLocaleProvider) {
    $mdDateLocaleProvider.parseDate = function(dateString) {
        var m = moment(dateString, ["DD.MM.YYYY"],true);
        return m.isValid() ? m.toDate() : new Date(NaN);
    };

    $mdDateLocaleProvider.formatDate = function (date) {
        return date ? moment(date).format('DD.MM.YYYY') : '';
    };
}]);

1 Ответ

0 голосов
/ 19 апреля 2019

Ваше форматирование для moment неверно. Используйте это в функции formatDate:

return moment(date).format('YYYY-MM-DD');

если вы хотите установить нулевую дату при загрузке, то используйте изменить возврат на это:

return date ? moment(date).format('YYYY-MM-DD') : '';

См. Документацию AngularJS Material для получения дополнительной информации о $mdDateLocaleProvider функциональных возможностях.

...