【问题标题】:Ionic 2: cannot change date format after user sets it on date inputIonic 2:用户在日期输入中设置日期格式后无法更改日期格式
【发布时间】:2017-11-26 01:28:30
【问题描述】:

我有这段 html,其中有两个元素,一个按钮和一个日期输入。

<ion-datetime id="datetime-12-0" pickerFormat="DD/MMM/YY" min="2017" max="2020" [(ngModel)]="date.date"></ion-datetime>
    <button (click)="triggerClick('date1Input')" ion-button="" item-end="" outline="" class="disable-hover item-button button button-ios button-outline button-outline-ios">
      <span class="button-inner">{{date.date}}</span>
      <div class="button-effect"></div>
    </button>

我设置按钮触发点击日期输入,还设置模型 date.date 打印在按钮上。

在组件内部,我声明了带有 now 日期的对象:

now = moment().format('DD/MM/YY');
date = {'date':this.now};

问题是:当应用程序启动时,它会显示正确格式的日期 (DD/MM/YY),但是当用户在输入中设置日期时,它会将其格式更改为 YYYY-MM-DD。

我已经尝试过 displayFormat、ngModelChange(在模型改变它的值后,尝试格式化它)但没有运气。

还有什么我可以尝试的吗?

谢谢!

【问题讨论】:

    标签: angular ionic2 format datetimepicker


    【解决方案1】:

    您可以在视图中使用日期管道,这意味着您最初不会将日期格式化为moment().format('DD/MM/YY');。如果你想格式化它,我建议你以后再做。所以以下应该工作:

    TS:

    now = moment();
    date = {'date':this.now};
    

    模板:

    <ion-datetime id="datetime-12-0" 
                  pickerFormat="DD/MMM/YY" 
                  min="2017" 
                  max="2020" 
                  [(ngModel)]="date.date">
    </ion-datetime>
    
    <button (click)="triggerClick('date1Input')">
      <span class="button-inner">{{date.date | date: 'dd/MM/yy'}}</span>
    </button>
    

    【讨论】:

    • 你知道如何从今天的日期开始选择日期吗?因为即使将 date.date 作为模型插入并以“moment()”开头,选择器日期也是从 2020 年 1 月 20 日开始,而不是从今天开始。
    • 好像你需要使用toISOString() forum.ionicframework.com/t/datetime-default-to-todays-date/… 当我尝试它时似乎工作正常:) moment().toISOString()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    相关资源
    最近更新 更多