收藏
回答

小程序发布后ios系统显示时间为nan,怎么解决

小程序ios端上时间显示为NaN,在真机测试和开发工具上都可以显示,但是在体验版和正式版上仍然显示为NaN,试过网上将‘-’改为‘/’的方法,仍然在ios手机上显示为NaN,安卓手机显示正常,请问这个问题该如何解决

回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    2019-06-26

    建议提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),方便大家帮忙定位问题

    2019-06-26
    赞同
    回复
  • 王墨炱
    王墨炱
    2019-08-27

    关键点:ios中  newDate('2019-08-01 12:12:12')  的问题 。

    重现机制:"-"分隔符的时间字符串不识别,但是安卓能识别。所以在ios中要用到Date对象,并且传入的时间字符串中年月日是以"-"来分隔,返回值就是null。

    解决方案:在官方没有修复这个问题的情况下,所有的时间字符串中年月日分隔符,请尽量,不,应该是全部用"/"来代替。

    观点:从framework的角度来看,这就是一个缺陷,虽然很小,但是致命。官方也没有给出明确的平台差异的处理列表。

    感言:微信小程序的出现的其中一个意义就是解决了开发者的平台问题,某种意义上打通了双端开发,作为一个产品来说,是非常成功的,但是在社区意见采纳,以及缺陷修复方面,单说这个缺陷吧,从我知道到现在两个月,至今没有修复,甚至没有给出官方的解决方案或在文档中注明,诸如此类的还有selectComponent返回null的问题等,从代码社区的角度来说,是不及格的。

    2019-08-27
    赞同 1
    回复 1
    • 浮尘笑
      浮尘笑
      2019-11-06
      完美解决
      2019-11-06
      回复
  • undefined
    undefined
    2019-06-26

    代码呢,不给代码不知道你在说什么

    2019-06-26
    赞同
    回复 16
    • °C
      °C
      2019-06-26

      function resolvingDate(date) {

      //date是传入的时间

      let d = new Date(date);

      let month = (d.getMonth() + 1) < 10 ? '0' + (d.getMonth() + 1) : (d.getMonth() + 1);

      let day = d.getDate() < 10 ? '0' + d.getDate() : d.getDate();

      let times = d.getFullYear() + '-' + month + '-' + day ;

      return times

      }


      function resolvingTime(date) {

      //date是传入的时间

      let d = new Date(date);

      let hours = d.getHours() < 10 ? '0' + d.getHours() : d.getHours();

      let min = d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes();

      let sec = d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds();


      let times = hours + ':' + min + ':' + sec;


      return times

      }

      我是在util里面写的方法然后调用的,ios上手机显示为NaN,麻烦你帮我看看,谢谢

      2019-06-26
      回复
    • undefined
      undefined
      2019-06-26回复°C

      我现在知道你util是怎么写了,不知道怎么调的。https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html写个代码片段吧

      2019-06-26
      回复
    • 夜未央
      夜未央
      2019-06-26

      你的时间格式是不是2019/06/26T18:05:00:000,这种格式的ios是不支持new Date()这个方法的,你的转一下格式:

      let dt = date.substring(0, 19);

      dt = dt.replace(/-/g, '/');

      let d= new Date(dt);

      let month=d.getMonth()+1;

      let day=d.getDate();


      2019-06-26
      回复
    • °C
      °C
      2019-06-26回复夜未央

      date里面传过来的是Wed, 26 Jun 2019 10:09:53 GMT这种

      2019-06-26
      回复
    • °C
      °C
      2019-06-26回复夜未央

      转了,还是不行

      2019-06-26
      回复
    查看更多(11)
登录 后发表内容