标签:stack str 返回 logs 获取 invalid 处理 ges date()
今天碰到个有意思的东西,在实现一条时间进度条的时候,
就是像这样的时间进度条
实现过程中发现pc和安卓手机上完美显示,但是iphone上却毫无反应,甚至没有任何波澜。(或者想告诉我它是多么的高冷?)
定位代码,发现问题出现在时间处理的方式上:
为了比较两个时间点的大小和控制距离,我用new Date().getTime()来获取毫秒数,比较毫秒数。
2012-2-22 06:23 这是我得到的时间格式,理所当然
new Date("2012-2-22 06:23 ").getTime();这样得到就是所指定时间的毫秒数,完美!
嗯,在pc上和安卓手机上一切正常,但是iphone上告诉我-----invalid Date
new Date("2012-2-22 06:23 ")返回的是invalid Date
难道是不支持这种日期格式?于是我就改为new Date("2012/2/22 06:23 "),
可以,很强。返回了正确的对象。
于是我试着这样 new Date("2012","2","22","06","23"),ok,没问题,返回了正确的对象。
这样 new Date(2012/2/22),ok,没问题,返回了丨
.......
等等,怎么是1970年。。,我再试试new Date(2012-2-22),。。。多一秒的1970年?讲道理今年2017年才是多一秒。。
没错。以上的区别就是字符串的问题。。但如果你传进的参数是毫秒数,类似new Date(148888888888888).这时候就是该像前面这么写。不能new Date("148888888888888")
看了前辈提到过的这个问题,其中一位说:
额。。。。我看了下自己的ios版本:10.2.1,完善下:IOS10.2.1也不能正确解释出来。
有前辈给出问题原因:
stackoverflow的地址
http://stackoverflow.com/questions/4310953/invalid-date-in-safari
可怕的它既然不支持这种时间格式。不过,那个多一秒的是什么情况?有什么不对的地方希望前辈们多多指点。
标签:stack str 返回 logs 获取 invalid 处理 ges date()
原文地址:http://www.cnblogs.com/jjucap/p/6433520.html