资讯专栏INFORMATION COLUMN

Date对象 IOS踩坑

Rainie / 2948人阅读

摘要:对象踩坑最近在做一个托管教师端小程序,里面有一个功能是选择某个日期加载该老师相关的课程,这里就需要用到日历组件。由于开发和调试一直用的是微信开发者工具,在开发过程中也很顺利,直到使用了真机进行测试的。就是因为这个错,苹果手机不能正常运行。

Date对象 IOS踩坑

最近在做一个托管教师端小程序,里面有一个功能是选择某个日期加载该老师相关的课程,这里就需要用到日历组件。基于后台返回的数据及减少对日历组件的修改,我选择了对小程序一开始自配备的转换时间格式方法进行了修改。用起来也没有太大毛病,坑就在这里埋下了。

const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  return [year, month, day].map(formatNumber).join("/") + " " + [hour, minute, second].map(formatNumber).join(":")
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : "0" + n
}

module.exports = {
  formatTime: formatTime
}

由于开发和调试一直用的是微信开发者工具,在开发过程中也很顺利,直到使用了真机进行测试的。在安卓机上是没有问题的,但一旦遇到了苹果机,我的整个功能就垮掉了。排查了很久才发现是日期转换的问题。

在开发中,由于与日历相关,肯定会大量用到Date对象的。
当使用

var date = new Date();

在安卓和苹果机上是可以运行且有结果的。
但是在这个项目里面需要用到根据字符串去获取日期,然后问题就来了。我的字符串日期格式是2018-01-01类型的

var date = new Date("2016-05-31");

这段代码是获得字符中指定的日期,它Firefox、Chrome中就能运行,但是在苹果手机就会报错,错误是NaN,意思是Not a Number。就是因为这个错,苹果手机不能正常运行。

解决方法
var date =new Date("2016/05/31");

这种字符串格式获取日期在苹果和安卓机上都能正常运行。由于代码中大量用到的是-模式。在使用new Date的时候写一个函数去转换一下即可。

function GetDateDiff(startDiffTime, endDiffTime) {
            //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 
            startTime = startDiffTime.replace(/-/g, "/");
            endTime = endDiffTime.replace(/-/g, "/");
};
总结

不要轻易的去改微信小程序提供工具类的代码,为什么用"/"可能是有原因的,微信已经帮你兼容好了。否则,就像我一样浪费时踩来踩去的间在这个坑里

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101785.html

相关文章

  • html2canvas以及domtoimage的使用踩坑总结

    摘要:本人建议第二种,更保险三转换的位图不能被以上版本所识别。客户使用的时候发现了这个问题,没法。五离成功只有一步之遥了,使用了之后安卓手机不能将图片分享给朋友。识别不了问题分析安卓能识别但不能识别矢量图片解决办法自己手写咯。判断手机为安卓还是。 前言 首先做个自我介绍,我是成都某企业的一名刚刚入行约一年的前端,在之前的开发过程中,遇到了问题,也解决了问题,但是在下一次解决相同问题的时候,只...

    邹强 评论0 收藏0
  • html2canvas以及domtoimage的使用踩坑总结

    摘要:本人建议第二种,更保险三转换的位图不能被以上版本所识别。客户使用的时候发现了这个问题,没法。五离成功只有一步之遥了,使用了之后安卓手机不能将图片分享给朋友。识别不了问题分析安卓能识别但不能识别矢量图片解决办法自己手写咯。判断手机为安卓还是。 前言 首先做个自我介绍,我是成都某企业的一名刚刚入行约一年的前端,在之前的开发过程中,遇到了问题,也解决了问题,但是在下一次解决相同问题的时候,只...

    MageekChiu 评论0 收藏0
  • Next.js项目实战踩坑指南

    摘要:项目实战踩坑指南移动端,滚动卡顿解决方案主容器增加样式路由跳转后样式丢失原因下样式根据页面动态加载,浏览器缓存文件造成样式不更新。跨域及传递的问题第一步,登录成功后服务器返回。第二步,浏览器自动缓存,再后续请求中携带此。 项目实战踩坑指南 1. 移动端overflow:auto,ios滚动卡顿 解决方案: 主容器增加样式-webkit-overflow-scrolling: touc...

    用户83 评论0 收藏0
  • 踩坑---一个不是坑的难以言喻的坑,有关企业微信在iOS端上传文件的坑

    摘要:我们的业务代码是在自己的客户端微信钉钉企业微信四个地方跑的同一套代码。描述的具体描述是企业微信用户在使用上传图片时,无反应。 起因 今早一去公司,被组长远程发过来一个Bug,据说是用户反馈的一个iOS的问题,在我们的业务中,有一个有关图片上传的问题。我们的业务代码是在自己的客户端、微信、钉钉、企业微信四个地方跑的同一套代码。 Bug描述 Bug的具体描述是企业微信用户在使用上传图片时,...

    geekidentity 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<