【问题标题】:Ionic ion-datetime: how to set default picker value离子离子日期时间:如何设置默认选择器值
【发布时间】:2018-08-04 10:51:02
【问题描述】:

我有以下需求:最终用户应在空白字段中输入日期时间。由于业务逻辑,该日期时间可以由应用程序建议。所以我想做的是点击空白字段在字段和 ion-datetime 组件中显示建议的日期时间。

这是我的代码:

在 HTML 中

    <ion-datetime   displayFormat='YYYY-MM-DD HH:mm' 
                    pickerFormat='YYYY-MM-DD HH:mm'
                    text-center 
                    (click)="init_worked_time()" 
                    [(ngModel)]='worked_time'>                  
    </ion-datetime>

在打字稿中

init_worked_time() {
    if (this.worked_time == undefined) {
        if (this.times.start_time != 0) { 
            let tzoffset = (new Date()).getTimezoneOffset() * 60000;
            this.worked_time = moment(this.times.start_time).subtract(tzoffset, 'milliseconds').toISOString().slice(0, -1);
        } 
    }
}

问题是建议的值在点击后显示在字段中,但 ion-datetime 组件显示当前 UTC 时间(甚至不是本地时间……)

有没有更好的方法来满足这种需求?或者是否有可能以编程方式更新 ion-datetime 组件的显示值?

谢谢!

【问题讨论】:

  • 我不完全确定,如果我理解你的问题。您想在用户点击时将建议的时间戳(日期和时间)填充到 ion-datetime 组件中?
  • 是的,完全正确。打开页面时,该字段为空,但单击该字段应填写建议的日期时间,最终用户可以在必要时进行更正。问题是更新变量工作时间(点击事件)不会更新离子日期时间的界面
  • 嘿!我在这里添加了一个可能对您的问题有帮助的拉取请求:github.com/ionic-team/ionic-framework/pull/24206

标签: javascript datetime ionic-framework ionic3 momentjs


【解决方案1】:

您使用的 momentJs 已经默认使用本地时间,因此无需减去偏移量。

init_worked_time() {
    if (this.worked_time == undefined) {
        if (this.times.start_time != 0) { 
            this.worked_time = moment(this.times.start_time).format();
        } 
    }
}

在您的 HTML 中,您需要使用事件 tap 而不是 click

<ion-datetime displayFormat='YYYY-MM-DD HH:mm' 
                    pickerFormat='YYYY-MM-DD HH:mm'  (tap)="init_worked_time()"
                    text-center 
                    [ngModel]='worked_time'>                  
    </ion-datetime>

这是一个在线DEMO

【讨论】:

  • 啊,谢谢,很高兴知道,这使我的代码更短更清晰 :-) 然而不幸的是,这并不能解决我的问题:界面中显示的日期时间不等于计算的建议值移动应用程序。
  • @Pierre 你是什么意思“界面中显示的日期时间不等于建议值”?结果没有改变吗?还是不显示当地时间?
  • 请看上图,我只是更新了它以使其更清晰。 ion-datetime 组件中显示的值不等于计算出的 this.worked_time。
  • @Pierre 我明白了。您想为日期时间设置默认值。检查编辑
  • 哦,是的,这很好用,非常感谢您的帮助!祝你有美好的一天:-)
猜你喜欢
  • 1970-01-01
  • 2018-07-20
  • 2017-04-30
  • 2021-05-13
  • 2018-01-13
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多