angular material(md-datepicker) - 如何在一个页面中将不同的日期格式设置为不同的datepicker

时间:2017-07-19 21:29:06

标签: javascript angularjs datepicker angular-material

我正在使用角度材质(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的文档。但是它没有为不同的控件设置不同的格式。

1 个答案:

答案 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') : '';
  }
};

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