2015-11-02 17 views
9

Khi sử dụng chỉ thị md-datepicker trong tài liệu góc, định dạng ngày dường như không hoạt động đối với đầu vào trực tiếp.định dạng đầu vào md-datepicker

Nếu tôi chọn ngày trong lịch, nó sẽ được hiển thị như được chỉ định (trong trường hợp của tôi DD-MM-YYYY) nhưng nếu tôi cố thay đổi đầu vào theo cách thủ công, mục nhập của tôi được phân tích là MM-DD-YYYY.

Cho đến nay, datepicker của tôi được thiết lập sử dụng mã này từ this question

angular.module('MyApp').config(function($mdDateLocaleProvider) { 
    $mdDateLocaleProvider.formatDate = function(date) { 
    return date ? moment(date).format('DD-MM-YYYY') : ''; 
    }; 
}); 

Here là một codepen để xem vấn đề trong hành động.

Có cách nào để thiết lập định dạng mục nhập không?

Trả lời

17

Sự kiện ngày định dạng không đủ. Bạn cũng nên định cấu hình sự kiện ngày phân tích cú pháp.

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

Xem bút Cập nhật: http://codepen.io/anon/pen/GpBpwZ?editors=101

5

Các cơ sở giải pháp hoàn chỉnh đó là:

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

$mdDateLocaleProvider.parseDate = function(dateString) { 
var m = moment(dateString, 'DD-MM-YYYY', true); 
return m.isValid() ? m.toDate() : new Date(NaN); 
}; 
0
config($mdDateLocaleProvider) { 
    $mdDateLocaleProvider.formatDate = function(date) {  
     if(date !== null) { 
     if(date.getMonthName == undefined) { 
      date.getMonthName = function() { 
      var monthNames = [ "January", "February", "March", "April", "May", "June", 
      "July", "August", "September", "October", "November", "December" ]; 
      return monthNames[this.getMonth()]; 
      } 
     }   
     var day = date.getDate(); 
     var monthIndex = date.getMonth(); 
     var year = date.getFullYear(); 
     return day + ' ' + date.getMonthName() + ' ' + year; 
     } 
    }; 
    } 
Các vấn đề liên quan