ionic2 ion-datetime 设置初始化开始结束时间格式转换遇到的一个坑

如图,需求是通过Ionic2 的 ion-datetime  实现一个时间选择器.  

因为展示的初始化时间是从上个页面带过来的. 所以需要用到三个参数:

[(ngModel)]="times.start"    即当前展示的时间

[min]="times.min"  可选择的最小时间

[max]="times.max"    可选择的最大时间


我从上个页面传递过来的时间,时间格式是 YYYY-MM-DD HH:mm  输出结果 2017-07-08 05:52:00

但是在ionic2 上设置的时间格式是要 用ISO 标准  即:  toISOString()  返回 Date 对象的字符串格式   

 输出结果 2017-07-08T05:52:00.486Z

这尼玛,首先想到的是,后台返给我的数据为啥不是时间戳呢?如果是时间戳,直接 new Date(时间戳).toISOString();  不就完事了嘛

然后我现在就需要  将YYYY-MM-DD HH:mm 格式的数据 转换成时间戳[步骤一], 然后再new Date(时间戳).toISOString()  [步骤二];

步骤一:      this.start= new Date(上个页面传过来的固定格式的时间).getTime()+8*3600*1000;  这样就拿到时间戳了

步骤二:      this.times.start = new Date(this.start).toISOString();   转换完成后,这就是ISO格式的时间了.

经测试,google 调试模式下,安卓手机上 都能准确显示, 未读苹果设备上无法显示...why? 这么坑?

改了一上午也没弄清楚头绪. 最后根据经验判断,是因为这两次数据的转换涉及到计算, 从而导致页面跳转过去的时候,数据还没来得及渲染上去...  也就是说 这两次计算 造成的效率问题,影响了渲染展示.

然后,朋友直接就用  replace(' ','T')+'Z';   完美解决.

对啊  怎么就没想到之别把 2017-07-08 05:52:00  转换成 2017-07-08T05:52:00.486Z这种数据格式呢?

然后经过测试,最后完美解决了苹果端 设置初始化时间无效的问题.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,298评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,259评论 19 139
  • 文/古尔浪洼 如果有人能在职场中不断升职加薪,一定会有很多其它的因素,不会仅仅只会拍马屁。如果你这样看,并用这一点...
    古尔浪洼阅读 2,846评论 4 34
  • 也许你永远也看不见我,永远也看不见他,永远也看不见你自己,因为山茶花敲碎了湖面,荡起的涟漪疼在了心底~ ...
    听北风阅读 359评论 0 1
  • 1 微商经历过一棍子买卖之后,消费者开始慢慢趋向聪明,传统微商正在经历转型。以往的忽悠 隐瞒 差价等因素会加素一起...
    无言001阅读 257评论 0 0