zoukankan      html  css  js  c++  java
  • IOS 时间字符串转换时间戳失败问题

    链接:https://pan.baidu.com/s/1nw6VWoD 密码:1peh

      有时候获取到的时间带有毫秒数或者是(2018-2-6 11:11:11)格式的(别说你没遇到过,也别什么都让后台转好给你,程序员就是在长跑,短时间内看不出什么,但一年两年后,有的人成了大神,有的人却还是只会切图),这样的字符串在ie11和IOS系统上jquery的getTime()无法将其转为时间戳(谷歌,安卓(华为)可以)。

      本宝宝致力于高版本IE网站,和移动端H5网页小游戏(比如答题游戏,大转盘等等)开发,低版本IE的坑在刚毕业的时候踩过,现在不想去碰了,毕竟马云爸爸都不支持低版本IE了。

      demo在文章开头,下面分析代码:

      大家都知道jquery获取当前时间戳是new Date().getTime(); 而一般转换某时间(比如 bb = "2018/2/6 11:11:11")成时间戳的代码如下。

      

    var bb = "2018/2/6 11:11:11"
    var timeb = new Date(bb).getTime();

      However,有种时间是用“-”连接年月日的(2018-2-6 11:11:11),甚至是带毫秒的(2018-2-6 11:11:11.3)(也许是自家的瓜皮后台给你的,也许是第三方的坑爹后台写的接口里面获取的),这种情况下,getTime();会在IOS和ie11上报NaN。代码和效果图如下:

    var bb = "2018-2-6 11:11:11.3"
    var timeb = new Date(bb).getTime();

      大家第一时间想到了把毫秒去掉,把“-”转成“/”。but 转换连接符容易,去掉毫秒又该怎么去掉,这里向大家介绍一种方法substr。这个方法可用获取字符串的第N位到第M位,可用实现取某几位字符,也可以实现手机号中间几位变成***,这里我将拿它实现删除毫秒。代码如下:

    var bb = "2018-2-6 11:11:11.3"
    console.log(bb.substr(0,bb.lastIndexOf(".")))
    var timec = new Date(bb.substr(0,bb.lastIndexOf(".")).replace(/-/g,"/")).getTime();

    lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。用substr获取字符串从第开头到 "." 。获取到 2018-2-6 11:11:11 。然后用正则转成 2018/2/6 11:11:11。接下来就能用getTime()转成时间戳了。

  • 相关阅读:
    20155226《网络攻防》 实验4 恶意代码分析
    20155226《网络攻防》 Exp3 免杀原理与实践
    20155226 Exp2 后门原理与实践
    20155226 《网络攻防》 Exp1 PC平台逆向破解(5)M
    2017-2018-1 20155226 《信息安全系统设计基础》课程总结
    《基于Arm实验箱的国密算法应用》课程设计 结题报告
    2015520吴思其 基于《Arm试验箱的国密算法应用》课程设计个人报告
    20155220 Exp9 Web安全基础实践
    20155220 《网络对抗》Exp 8 Web基础
    20155220 《网络对抗》实验七 网络欺诈防范
  • 原文地址:https://www.cnblogs.com/ovocake/p/8425536.html
Copyright © 2011-2022 走看看