美文网首页
Date对象 IOS踩坑

Date对象 IOS踩坑

作者: suan__suan | 来源:发表于2019-02-18 10:48 被阅读0次

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


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, "/");

};

总结

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

相关文章

  • Date对象 IOS踩坑

    最近在做一个托管教师端小程序,里面有一个功能是选择某个日期加载该老师相关的课程,这里就需要用到日历组件。基于后台返...

  • 原生安卓与IOS js兼容问题汇总

    1.JavaScript中的Date对象在Safari与IOS中的坑 var date =new Date("20...

  • new Date在iOS 和 android 区别

    谨记:new Date()在IOS中的坑 第一次遇到,记录一下 要创建一个指定时间的new Date对象时,通常的...

  • Xcode10和iOS12踩坑

    Xcode10和iOS12踩坑

  • iOS10的适配

    每次出了新系统,必然要踩很多坑,这次来踩一踩iOS10的坑吧。 一、证书问题 直接选择Automatically ...

  • iOS 对象copy踩坑记

    项目中做数据模拟的时候,遇到了一个奇怪的bug,归根到底是指针引起的数据异常,本文的重点是使用copy 和不使用c...

  • js中Date对象小结

    Date 对象用于处理日期和时间。之前一个项目踩了个坑(收获一个缺陷),这里总结下常用方法与注意事项。 1、创建 ...

  • 简洁的jQuery日历小插件

    导语 最近在复习JavaScript标准库的Date对象,Date对象的API挺多的,坑也不少,为了巩固学习成果,...

  • Date对象的坑

    1.第一个坑 Date() 返回一个无用的字符串 new Date()才返回的是Date对象 2.第二个坑 d.g...

  • React Native 从入门到踩坑

    title: React Native 从入门到踩坑date: 2017-03-13 03:50:12tags: ...

网友评论

      本文标题:Date对象 IOS踩坑

      本文链接:https://www.haomeiwen.com/subject/hoaoeqtx.html