JS IOS/iPhone的Safari不兼容Javascript中的Date()问题

1 var date = new Date(‘2016-11-11 11:11:11‘);
2 document.write(date);

最近在写一个时间判断脚本,需要将固定好的字符串时间转换为时间戳进行比较,在做的时候个人习惯使用chrome作为调试工具,

代码基本完成之后,一切正常;

使用其他浏览器访问,好嘛,IE跟safari都不兼容,返回错误"Invalid Date"。

想着估计是字符串格式的问题,改成‘2016/11/11 11:11:11‘再测试,结果正常,以为这样应该没问题了,再用手机浏览器继续访问,android正常,iPhone继续报错,

再改"Nov 11 2016 11:11:11",照样报错,怎么改都不行

绞尽脑汁,最后还是在论坛上看到了这样一种解决方案:

1 var arr = "2016/11/11 11:11:11".split(/[- : \/]/),
2 date = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]);
3 document.write(date);

终于可以兼容所有浏览器咯,结论:

iPhone中的safari无法解释 YYYY-MM-DD HH:mm:ss 或者YYYY/MM/DD HH:mm:ss这样的时间格式,而谷歌火狐等浏览器对这样的格式做了扩展,

iPhone中的safari所支持的格式为 YYYY,MM, DD,HH,mm,ss,这个问题纠结我大半天,真的好想把苹果的程序员拉出去枪毙10分钟,太TM特立独行了。气人

时间: 2024-10-12 17:47:13

JS IOS/iPhone的Safari不兼容Javascript中的Date()问题的相关文章

IOS:Safari不兼容Javascript中的Date问题

在IOS5以上版本(不包含IOS5)中的Safari浏览器能正确解释出Javascript中的 new Date('2013-10-21') 的日期对象. 但是在IOS5版本里面的Safari解释new Date('2013-10-21') 就不正确,在IOS5的Safari中返回的永远是"Invalid Date". 后来我在网上查找了资料,原来是低版本的Safari解释new Date('2013-10-21')这个对象不一样,在IOS5中的Safari不支持这种写法, 而它支持的

vue的爬坑之路(八)之----IOS:Safari不兼容Javascript中的Date问题

在IOS5以上版本(不包含IOS5)中的Safari浏览器能正确解释出Javascript中的 new Date('2013-10-21') 的日期对象. 但是在IOS5版本里面的Safari解释new Date('2013-10-21') 就不正确,在IOS5的Safari中返回的永远是"Invalid Date". 后来我在网上查找了资料,原来是低版本的Safari解释new Date('2013-10-21')这个对象不一样,在IOS5中的Safari不支持这种写法, 接着我查了

IOS5中的Safari不兼容Javascript中的Date问题

在IOS5以上版本(不包含IOS5)中的Safari浏览器能正确解释出Javascript中的 new Date('2016-06-07') 的日期对象. 但是在IOS5版本里面的Safari解释new Date('2016-06-07') 不正确,在IOS5的Safari中返回的永远是"Invalid Date". 想要IOS5中的Safari能正确解析new Date()那么必须这么写 new Date('2016/06/07');

JavaScript中的Date类型详解与moment简介

关于JavaScript中的Date类型,相信JSer们都不会陌生吧,但是也必然为那个复杂难记的各种转换函数所头疼,本文将分享一下我对JS中的Date类型的一些知识小总结,并把其中容易犯错的地方指出来,同时简介和推广moment.js这个js库,希望大家看完文章后以后在对Date类处理如鱼得水. 1 时间的唯一性与多样性 某一时刻在全世界任何地区应该是唯一的,时区的不同是为了让地球不同时区的人的中午十二点都是太阳正上当头,形成交流上没有那么多障碍.而这一标准就是大家熟知的格林威治标准时间(Gre

JavaScript 中关于Date的内置对象属性和方法的总结

Date 属性: 1.constructor    所建立对象的函数参考 2.prototype      能够为对象加入的属性和方法 方法: 1.getDay()    返回一周中的第几天(0-6) 2.getYear()    返回年份.2000年以前为2位,2000(包含)以后为4位 3.getFullYear()     返回完整的4位年份数 4.getMonth()      返回月份数(0-11) 5.getDate()       返回日(1-31) 6.getHours()  

JavaScript中关于date对象的一些方法

日期对象用于处理日期和时间. Date() - 可返回当天的日期和时间,还包含周几.时区等信息,如: Tue Jul 15 2014 16:03:46 GMT+0800 (CST) getDay() - 可返回表示星期的某一天的数字,返回值是0到6之间的一个整数,0为周日,6为周六: dateObject.getDay() getMonth()- 可返回表示月份的数字,返回值是0到11之间的一个整数,0为一月,11为12月份: dateObject.getMonth() getMilliseco

js基础面试高频面点2:Javascript中undefined和not defined有什么区别?

二.Javascript中undefined和not defined有什么区别? 一句话:udefined为变量正常的数据类型,不是报错,而not defined是指变量没有定义,是报错. 那么,什么是数据类型?js中数据类型有哪些? 数据类型在数据结构中的定义是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称. js中变量的数据类型有: 值类型(基本类型):字符串(String).数字(Number).布尔(Boolean).对空(Null).未定义(Undefined).Symb

JavaScript中的Date类型

ECMAScript中的Date类型是在早起Java中的java.util.Date类基础上构建的.为此,Date类型使用自UTC(Coordinated Universal Time,国际协调时间)1970年1月1日0时开始经过的毫秒数来保存日期.在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的100000000年. 要创建一个日期对象,使用new操作符合Date构造函数即可. var now = new Date(); 在调用Date构造函数而不

Javascript中的Date

Date类用来处理日期和时间,基于1970年1月1日(世界标准时间)起的毫秒数(时间戳) 1.创建日期对象 var now = new Date();//当前时间 var date = new Date(1000);//1970年1月1日起过了秒钟的时间 var date = new Date(year,month,day,hour,minute,second,millisecond);//通过分别指定各个时间分量来创建日期对象 2.提供的方法 getTime()获取一个Date对象所基于的时间