Date对象是JavaScript提供的日期和时间的操作接口,它有多种用法。手册上或者网上也有很多文章介绍,这里就不再次复述了。

上次遇到一个坑,这里总结下,也不是什么大问题,若是如果有经验,就不会花费很长时间去定位问题了。说下背景,一个早已经开发好的页面,在android的机器上运行的很正常,没出一点问题。某一天,产品狗跑来问我,为啥IOS上这个页面是空白的,为啥呢?到底是为啥呢?在需求忙不停的时候我还得抽空看这个外网bug,这哪算bug,要上IOS平台也没经过测试啊,什么时候被放到IOS的APP里面去了,简直不想吐槽。

在IOS APP里面debug的方法目前还没有找到合适的,借助mac机器可以做到类似chrome的remote debug功能,但也不是人人都有mac机器,屌丝开发只能借助alert了,不喜欢弹窗的可以document.write,将可疑之处全部输出,定位错误。最后发现是在new Date(''xxxx''),这个对象上报错了。

后台同学给出的字段就是2010-11-29 11:11:11这种格式的日期,严谨点应该输出时间戳,这里就不再吐槽后台同学了,比较都是一条船上的。

IOS的浏览器不能解析2010-11-29,说到底就是浏览器实现的标准不同,这样也没什么好争论。在PC时代IE带来的蛋疼的问题还少么,只能踩一个坑填一个了,解决方案在代码里面。

changed this:

var actiondate = new Date(date);

to this:

var t = date.split(/[- :]/);

// Apply each element to the Date function
var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
var actiondate = new Date(d);

参考:https://stackoverflow.com/questions/26657353/date-on-ios-device-returns-nan

IOS Javascript Date的坑的更多相关文章

  1. JavaScript Date 对象

    JavaScript Date 对象 Date 对象 Date 对象用于处理日期与实际. 创建 Date 对象: new Date(). 以上四种方法同样可以创建 Date 对象: var d = n ...

  2. JavaScript Date对象 日期获取函数

    JavaScript Date对象使用小例子: 运行结果: 总结: 1.尽管我们认为12月是第12个月份,但是JavaScript从0开始计算月份,所以月份11表示12月: 2.nowDate.set ...

  3. JavaScript Date(日期) 对象

    日期对象用于处理日期和时间. 如何使用 Date() 方法获得当日的日期. getFullYear()使用 getFullYear() 获取年份. getTime()getTime() 返回从 197 ...

  4. JavaScript Date对象介绍

    原文:JavaScript Date对象介绍 Date 日期和时间对象 1. 介绍 Date对象,是操作日期和时间的对象.Date对象对日期和时间的操作只能通过方法. 2. 构造函数 2.1 new ...

  5. JavaScript Date(日期)对象

    返回当日的日期和时间 如何使用 Date() 方法获得当日的日期. getFullYear() 使用 getFullYear() 获取年份. getTime() getTime() 返回从 1970 ...

  6. rabbitmq在ios中实战采坑

    1. rabbitmq在ios中实战采坑 1.1. 问题 ios使用rabbitmq连接,没过多久就断开,并报错.且用android做相同的步骤并不会报错,错误如下 Received connecti ...

  7. JavaScript&Date对象

    JavaScript Date对象 <script type="text/javascript"> var date = new Date(); document.wr ...

  8. javascript Date对象 之 date初始化

    javascript Date对象 --> 日期初始化: 总结: 日期初始化的 方式: 1. new Date( yyyy, M(+), d(+), h(+), m(+), s(+) ); 2. ...

  9. javascript Date对象 之 时间转字符串

    javascript Date对象 --> 时间转字符串: 测试代码: <!DOCTYPE html> <html lang="en"> <he ...

随机推荐

  1. 01python语言程序设计基础——初识python

    1.python的字符串中format函数用法   format 函数可以接受不限个参数,位置可以不按顺序. In [2]: "{} {}".format("hello& ...

  2. 修改linux服务器的MySQL密码

    1.   首先用管理员权限登陆Linux: 2.   输入:vi  /etc/my.cnf  回车.然后按“i”键盘,在这个文件中的最后一行输入:skip-grant-tables   然后按 esc ...

  3. cookie和session的关联关系

  4. anaconda 在内网中代理配置

    修改anaconda的配置文件,位置在c:\User(或“用户”)\current_user(当前用户)\.condarc,将以下内容拷贝进去, 替换原有内容, 修改 http://proxy.you ...

  5. Struts1 不能进入Action,页面空白问题解决

    http://blog.csdn.net/barry_liao/article/details/35592935 Struts1 不能进入Action,页面空白问题解决 标签: Struts1Acti ...

  6. VS2017调试出现异常浏览器直接关闭的解决办法

    最近升级完VS2017后,出现了各种不适应. 1.F5调试时总是会打开新的浏览器,过去都是在现有窗口右侧打开新的新的浏览器标签页. 这一点就让很不爽,勉强接受吧,继续调试代码但是还有第二种情况. 2. ...

  7. Python装饰器的调用过程

    在Python学习的过程中,装饰器是比较难理解的一个应用.本人也在学习期间也遇到很多坑,现将装饰器的基本调用过程总结一下. 首先,装饰器用到了“闭包”,而“闭包”是学习装饰器的基础,所以在讲装饰器之前 ...

  8. 查看Linux内置命令和外部命令

    1. [hl@localhost ~]$ which cd /bin/cd [hl@localhost ~]$ type cd cd is a shell builtin

  9. 实验五:Xen环境下多虚拟机的桥接配置

    实验名称: Xen环境下多虚拟机的桥接配置 实验环境: 这里我们首先需要有一台已经安装好的虚拟机机,能够正常运行,且网卡正常,如下图: 实验需求: 进行虚拟机的复制,并添加新的网桥配置,然后将两台虚拟 ...

  10. Sublime Text 3激活

    Sublime Text 3激活方式: 一.修改hosts文件: 1:windows系统:      找到 C:\Windows\System32\drivers\etc\hosts 这个文件,  用 ...