首页 > web前端 > js教程 > 正文

JavaScript中的Date对象在Safari与IOS遇到的兼容问题

php是最好的语言
发布: 2018-07-28 13:46:19
原创
1924人浏览过

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

1.png

 问题一:

 这个界面运用了大量的日期类型的计算,当我们用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不支持。。。。。。。

立即学习Java免费学习笔记(深入)”;

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

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入门基础视频教程

以上就是JavaScript中的Date对象在Safari与IOS遇到的兼容问题的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号