AngularJS: mdDatepicker - один выходной день

Lunin Roman спросил: 28 марта 2018 в 03:14 в: javascript

Я использую расширение Datepicker для языка Angularjs

Вот простой пример использования:

<md-datepicker ng-model="$ctrl.date"></md-datepicker>

И в моем приложении config:

$mdDateLocaleProvider.formatDate = function (date) {
  if (!date) {
    return '';
  }
  return moment(date).format('YYYY-MM-DD');
};

И вот проблема, с которой я сталкиваюсь - когда дата была выбрана с помощью календаря, она возвращает правильное значение, но когда я печатаю точную дату, например 2012-12-12, она дает мне один день выкл. Tue Dec 11 2012 00:00:00 GMT-0500 (EST)

PS Вот Codeopen, который я нашел с такой проблемой


1 ответ

John Velasquez ответил: 28 марта 2018 в 04:14

Это известная ошибка в javascriptexample: new Date ('2012/03/21'); - > Wed Mar 21 2012 00:00:00 GMT-0400 (Eastern Daylight Time)

new Date ('2012-03-21'); - > Tue Mar 20 2012 20:00:00 GMT-0400 (Eastern Daylight Time)

лучший совет, который я могу вам дать, это заменить - на /

, попробуйте вместо этого HTML

<div ng-app="MyApp" ng-controller="AppCtrl">
  <md-content>
    <md-datepicker ng-model="myDate" md-placeholder="Enter date" ng-change="change(myDate)"></md-datepicker>
  </md-content>
</div>

JS

angular.module('MyApp')
    .controller('AppCtrl', function($scope) {
      $scope.myDate = new Date();      $scope.minDate = new Date(
        $scope.myDate.getFullYear(),
        $scope.myDate.getMonth() - 2,
        $scope.myDate.getDate());      $scope.maxDate = new Date(
        $scope.myDate.getFullYear(),
        $scope.myDate.getMonth() + 2,
        $scope.myDate.getDate()); 
console.log($scope.myDate.toLocaleDateString(), $scope.myDate.toUTCString());       $scope.change = function(data) { 
        console.log($scope.myDate.toLocaleDateString());
        console.log( $scope.myDate.toUTCString());     
      }}).config(function($mdDateLocaleProvider) {
  $mdDateLocaleProvider.formatDate = function(date) {
    return moment(date).format('YYYY/MM/DD');
  };
});
Lunin Roman ответил: 28 марта 2018 в 03:46
Это все еще дает мне один выходной
John Velasquez ответил: 28 марта 2018 в 03:49
проверьте это здесь, codepen.io/anon/pen/ZobQXV?editors=1111
Lunin Roman ответил: 28 марта 2018 в 03:51
Нету prnt.sc/j8apgp
John Velasquez ответил: 28 марта 2018 в 03:52
Какой у вас текущий часовой пояс?
Lunin Roman ответил: 28 марта 2018 в 03:53
Восточный часовой пояс