【问题标题】:Ion DateTime also sends DateTime as UTC (Z)Ion DateTime 还将 DateTime 发送为 UTC (Z)
【发布时间】:2018-06-14 23:40:51
【问题描述】:

我的 Ionic 3 应用程序使用用户输入日期的 ion DateTime 字段。

<ion-datetime displayFormat="DD/MM/YYYY HH:mm" [(ngModel)]="scheduled_at"></ion-datetime>

然后将其发送到我的 Rails 5 API。到达我的 API 端点的字符串如下所示:

"scheduled_at"=>"2018-06-14T23:33:42.939Z"

我读到 Z 表示 UTC (https://robots.thoughtbot.com/its-about-time-zones)。问题是用户输入的时区不在 ZTC 中,而是在“America/Sao_Paulo”中,所以当我将字符串解析为 Rails 中的 DateTime 对象并将其存储到数据库时,它总是会出错。

有没有办法告诉 ion DateTime 正确的时区?

【问题讨论】:

    标签: ruby-on-rails datetime ionic-framework


    【解决方案1】:

    也许,没有办法做到这一点。 moment.js 是另一种选择。

    ionic datatime documentation

    高级日期时间验证和操作

    日期时间选择器提供了选择精确的简单性 格式,并使用 标准化的 ISO 8601 日期时间格式。但是,重要的是要注意 离子日期时间不会尝试解决所有情况 验证和操作日期时间值。 如果需要日期时间值 从某种格式解析出来,或者被操纵(比如加5 日期,减去 30 分钟等),甚至格式化数据 到特定的语言环境,那么我们强烈建议使用 moment.js “在 JavaScript 中解析、验证、操作和显示日期”。 Moment.js 已经迅速成为我们处理的 goto 标准 JavaScript 中的日期时间,但 Ionic 没有预先打包 依赖,因为大多数应用程序都不需要它,并且它的语言环境 配置应由最终开发者决定。

    【讨论】:

      【解决方案2】:

      尝试使用日期的toLocaleString()字符串函数

       myDate: String = new Date().toLocaleString();
      

      【讨论】:

        猜你喜欢
        • 2019-07-22
        • 1970-01-01
        • 2012-12-05
        • 2011-09-29
        • 2015-04-29
        • 2023-03-21
        • 1970-01-01
        • 2021-10-08
        • 1970-01-01
        相关资源
        最近更新 更多