【问题标题】:How to display Month Only, Excluding Day and Year如何仅显示月份,不包括日期和年份
【发布时间】:2020-07-10 11:41:31
【问题描述】:

如何在 Angular 中创建月份日期选择器,不包括隐藏日期和年份?

以下链接将执行月份和年份选择器。我试图操纵它只做一个月。如何配置?

Stackblitz:

https://stackblitz.com/angular/gxymgjpprdy?file=src%2Fapp%2Fdatepicker-views-selection-example.ts

结果应该是这样的,发出的值可以是示例 May:a) 5 或 b) 5/1/2020。我可以删除一天和一年后。

资源:Angular Material DatePicker: Month and Day, Exclude Year

【问题讨论】:

    标签: angular typescript angular-material angular8 angular-material-datetimepicker


    【解决方案1】:

    您可以在 css 的帮助下简单地做到这一点。

    .mat-calendar-controls .mat-calendar-period-button {
      display: none;
    }
    
    mat-year-view .mat-calendar-body-label{
      display: none !important;
    }
    

    这将隐藏您的按钮并按照您的期望工作。

    您还需要将日期选择器的 startView 选项更改为 HTML

    我已经 fork 这个 stackblitz here

    <mat-datepicker #dp
                  startView="year"
                  (yearSelected)="chosenYearHandler($event)"
                  (monthSelected)="chosenMonthHandler($event, dp)"
                  panelClass="example-month-picker"></mat-datepicker>
    

    如果您需要从输入控件中删除 2020,您可以更改组件文件中的格式。

    要更改月份格式,只需在此处更改 dateInput

    display: {
      dateInput: 'MM',
    

    【讨论】:

    • 嗨,这有一个小错误,June 总是有一个大纲,检查你的堆栈闪电战,谢谢
    • 是的,它以轮廓显示当前月份。您也可以更改此设置。
    【解决方案2】:

    您应该创建一个包含一年中所有月份的自定义模式,并使用类似于 Angular Material Datepicker 的皮肤显示它们,为了实现这一点,您可以更改组件中的 CSS。即使您愿意,也可以将此组件保存为共享组件,以便在需要时重复使用。

    【讨论】:

    • 很抱歉,我没有针对您的案例的特定代码,但我认为并不复杂。您需要从 Angular Material 添加一个叠加层,这里是官方文档material.angular.io/cdk/overlay/overview
    猜你喜欢
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 2022-07-25
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多