最近小编在做一个会议室预定的功能,这个功能就像在买电影票时选择座位一样,看看会议室的哪个时间段空闲,有什么设备等等。由于我做的是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);就会报错。
相关文章:
javascript的new date等日期函数在safari中遇到的坑
javascript中date对象
相关视频:
js内置对象-date日期对象-javascript入门基础视频教程
以上就是javascript中的date对象在safari与ios遇到的兼容问题的详细内容。