视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JavaScript中的Date对象在Safari与IOS遇到的兼容问题
2020-11-27 19:33:02 责编:小OO
文档
 最近小编在做一个会议室预定的功能,这个功能就像在买电影票时选择座位一样,看看会议室的哪个时间段空闲,有什么设备等等。由于我做的是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就能共用了,写了个函数,替换一下!

  1. function GetDateDiff(startDiffTime, endDiffTime) {

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

问题二:

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");就会报错。

相关文章:

JavaScript的new date等日期函数在safari中遇到的坑

JavaScript中Date对象

相关视频:

JS内置对象-Date日期对象-JavaScript入门基础视频教程

下载本文
显示全文
专题