Ion DateTime还将DateTime作为UTC(Z)发送

时间:2018-06-14 23:40:52

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

我的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正确的时区?

2 个答案:

答案 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();