我正在使用角度材质(md-datepicker)。我的要求是根据选择设置不同的日期格式。即如果用户选择'每日',则datepicker将显示'MM / DD / YYYY'。如果用户选择“每月”,则datepicker应显示“MMM YYYY”,而“每小时”则应为“MM / DD / YYYY hh:mm”
https://plnkr.co/edit/S4mnF7?p=preview
使用md-datepicker是否可行?我没有看到在HTML中设置format属性的任何选项。看到$mdDateLocaleProvider
的文档。但是它没有为不同的控件设置不同的格式。
答案 0 :(得分:1)
您可以使用$mdDateLocaleProvider, formatDate 函数来设置日期格式:将日期对象格式化为字符串的函数。如果指定了时区,则datepicker指令还提供时区。
在datepicker指令中,您可以使用md-date-locale属性:这允许$ mdDateLocaleProvider中的值基于每个元素被覆盖(例如,msgOpenCalendar可以用md-date-locale覆盖=“{msgOpenCalendar:'打开特殊日历'}”)。
类似的东西:
<md-datepicker ng-model="myDate" md-date-locale="mylocale"></md-datepicker>
<md-datepicker ng-model="myOtherDate" md-date-locale="myOtherlocale"></md-datepicker>
并在控制器中
$scope.mylocale = {
formatDate: function(date) {
var m = moment(date);
return m.isValid() ? m.format('YYYY') : '';
}
};
$scope.myOtherlocale = {
formatDate: function(date) {
var m = moment(date);
return m.isValid() ? m.format('MMMM YYYY') : '';
}
};