zoukankan      html  css  js  c++  java
  • ios时间格式的处理----坑坑坑

    在做移动端开发时发现一个bug;再取两个日期之间的差值时,没有注意到ios设备上的日期格什问题,导致自己一直在坑里打转,,对自己无语至极!

    这个是封装的求取两个日期之间的差的函数(开始写法):结果是一个整数。

    function DateDiff(sDate1, sDate2) { //sDate1和sDate2是2006.12.18格式
    var aDate, oDate1, oDate2, iDays
    aDate = sDate1.split(".")
    oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2006格式
    aDate = sDate2.split(".")
    oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
    iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数
    if(iDays >= 30) {
    return true;
    } else {
    return false;
    }
    }

    测试结果在安卓设备上没有任何问题,但是在ios设备上就很无语,老是无法进行正常的比较,折腾了老半天才发现这个iDays 在ios设备上的结果是Nan,这才反应过来是格式问题。于是才反应过来ios设备上的日期格式是斜杠,不是横杠,哇哇哇哇哇哇,被自己的智商感动到了!

    正确的写法:

    function DateDiff(sDate1, sDate2) { //sDate1和sDate2是2006.12.18格式
    var aDate, oDate1, oDate2, iDays
    aDate = sDate1.split(".")
    oDate1 = new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0]) //转换为12/18/2006格式 
    aDate = sDate2.split(".")
    oDate2 = new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0])
    iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数 
    if(iDays >= 30) {
    return true;
    } else {
    return false;
    }
    }

  • 相关阅读:
    AcWing 1027. 方格取数 dp
    AcWing 1014. 登山 dp
    acwing 482. 合唱队形 dp
    LeetCode 1463. 摘樱桃II dp
    LeetCode 100. 相同的树 树的遍历
    LeetCode 336. 回文对 哈希
    LeetCode 815. 公交路线 最短路 哈希
    算法问题实战策略 DARPA大挑战 二分
    算法问题实战策略 LUNCHBOX 贪心
    AcWing 1100. 抓住那头牛 BFS
  • 原文地址:https://www.cnblogs.com/LindaBlog/p/12985502.html
Copyright © 2011-2022 走看看