角材(md-datepicker) - 如何在一页中设置不同的日期格式为不同的日期选择器

问题描述:

我正在使用角材(md-datepicker)。我的要求是根据选择设置不同的日期格式。即如果用户选择“每天”,日期选择器将显示“MM/DD/YYYY”。如果用户选择 '按月',那么日期选择器应该显示 'MMM YYYY' 和 '小时',它应该是 'MM/DD/YYYY HH:MM'角材(md-datepicker) - 如何在一页中设置不同的日期格式为不同的日期选择器

https://plnkr.co/edit/S4mnF7?p=preview

是否可行使用MD-日期选择器?我没有看到任何选项来设置HTML中的格式属性。查看$mdDateLocaleProvider的文档。但它没有给出将不同格式设置为不同控件的选项。

您可以使用$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') : ''; 
    } 
}; 

https://embed.plnkr.co/u9wY3rvtpmXdQ7zrbMpB/

+0

完美!这正是我期待的。谢谢你的答案 – CPatel