JavaScript中的Date对象在Safari与IOS中的“大坑”

原创 2016年05月30日 15:50:19

   最近小编在做一个会议室预定的功能,这个功能就像在买电影票时选择座位一样,看看会议室的哪个时间段空闲,有什么设备等等。由于我做的是APP,APP既要兼容Android,又要兼容IOS,刚开始的开发与调试我都是用谷歌浏览器干的,我没有用其它浏览器进行测试,谁知道最后遗留一个很大的隐患。下面是我的界面。


 问题一:

 这个界面运用了大量的日期类型的计算,当我们用JavaScript实例化一个日期对象时,我们可以这样用:

var date =new Date();

 上面这段代码是获取当前日期,这段代码在Firefox、Chrome、Safari浏览器中都可以运行。但是如果我想根据字符串获取日期,问题就来了。看下面代码。

var date =new Date("2016-05-31 08:00");

 这段代码是获得字符中指定的日期,它Firefox、Chrome中就能运行,但是放在Safari就会报错,错误是NaN,意思是Not a Number。就是因为这个错,苹果手机不能正常运行我开发的这个界面,当时都快郁闷死了,我写了300行js啊,几乎都与时间有关,不是取值就是赋值,要不就是计算,如今IOS不支持。。。。。。。

 在网上找了一下,将代码这样写就好了:

var date =new Date("2016/05/31 08:00");

 这样Android和IOS就能共用了,写了个函数,替换一下!

function GetDateDiff(startDiffTime, endDiffTime) {
            //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 
            startTime = startDiffTime.replace(/\-/g, "/");
            endTime = endDiffTime.replace(/\-/g, "/");
};

 问题二:

  HTML5中新增了日历控件,如果将控件的type=“datetime-local”,如果是Chrome,控件的日期显示格式是2016/05/30 08:00 ,如果是Safari,日期的显示格式是:2016-05-31T08:00,当我们用JQuery取值赋值的时候,就必须用这种方式才能赋值:假如说这个日历控件的id是timeDate,代码如下:

$("#timeDate').val("2016-05-30T08:30");

  用$("#timeDate').val("2016/05/30 08:30");就会报错。可是Chrome的显示方式就是这样的啊!!!尼玛的还有天理吗?
  这两个坑肯定不光坑过我自己一个人,希望以后注意吧!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

safari new Date()的问题解析

关于在safari上new Date(“time”)的问题解决方案 看了一个博客园的文章写道safari 默认的时间格式   具体自己百度 我这里写上我遇到的问题和解决方案 我的时间 var my...
  • biany2
  • biany2
  • 2016年01月05日 18:01
  • 3175

关于 safari浏览器 不支持new Date 显示NaN的问题记录

知识点:new Date问题: safari浏览器 显示 NaN因为 JS中要求Date类型转换的原始数据格式是yyyy/mm/dd之类的,所以横岗 - 要替换掉才可以今天同事来问,我一看果然啊,ma...

ios系统中js的new Date的格式问题

前段时间做项目时,发现在ios系统下,js中去new Date的时,传入参数带有"-",如:2016-01-01,则会返回NaN。 最后在网上查了查资料,发现不支持这用日期格式,把"-"改为"/"则...

javascript中new Date()的浏览器兼容性问题

引言: 同一种语言javascript,在不同的浏览器中,存在语言兼容性问题,本质上是由于不同的浏览器是支持的语言标准和实现上各有差异。本文将基于new Date来创建Date对象来分析这个问题。...

ios中safari不兼容JavaScript中Date转化为时间戳的问题

在做移动端时间转化为时间戳时,遇到了一个问题,安卓手机上访问时,能拿到时间戳,从而正确转换时间,而在ios上缺不能正常显示,显示的时间为:NaN-NaN1-NaN  Invalid Date,捣鼓了好...

safari浏览器下解决Date日期的NAN问题

Date.parse()方法当无法解析的时候会返回NAN,YYYY-MM-DD HH:MM:SS格式无法解析,需要转换成YYYY/MM/DD HH:MM:SS格式。在firefox和chrome中可以...

ios日期格式转换

1、如何如何将一个字符串如“ 20110826134106”装化为任意的日期时间格式,下面列举两种类型:    NSString* string = @"20110826134106"; ...
  • l_ch_g
  • l_ch_g
  • 2012年11月23日 18:07
  • 44567

JS的Date对象在Safari与IOS中的兼容问题

JavaScript中的Date对象在Safari与IOS中的“大坑”
  • xuxu120
  • xuxu120
  • 2016年12月23日 18:44
  • 375

IOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决

通常 IOS下时间错误表现形式 问题一:  这个界面运用了大量的日期类型的计算,当我们用JavaScript实例化一个日期对象时,我们可以这样用: [javascript...

html5中new Date在ios中出现Invalid Date

1、在做html5开发时,html5需要嵌入在手机中,当然有ios版本的。这个过程中遇到一个问题,就是new Date("2015-12-04")形式,ios版本解析不了,出现Invalid Date...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript中的Date对象在Safari与IOS中的“大坑”
举报原因:
原因补充:

(最多只允许输入30个字)