我的Ionic 3应用程序使用离子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对象并将其存储到DB时,它总是错误的。
有没有办法告诉离子DateTime正确的时区?
答案 0 :(得分:1)
也许,没有办法做到这一点。 moment.js是另一种选择。
在ionic datatime documentation,
高级日期时间验证和操作
日期时间选择器提供了选择精确的简单方法 format,并使用。将日期时间值保存为字符串 标准化的ISO 8601日期时间格式。但是,重要的是要注意 当离子日期时间不会尝试解决所有的情况 验证和操作日期时间值。 如果需要日期时间值 从某种格式解析或操纵(例如添加5) 日期到日期,减去30分钟等),甚至格式化数据 对于特定的语言环境,我们强烈建议使用moment.js &#34;在JavaScript&#34;。中解析,验证,操作和显示日期 Moment.js在处理时很快成为我们的goto标准 JavaScript中的日期时间,但Ionic不预先包装它 依赖,因为大多数应用程序将不需要它及其语言环境 配置应由最终开发人员决定。
答案 1 :(得分:0)
尝试使用Date
的toLocaleString()字符串函数 myDate: String = new Date().toLocaleString();