new Date() ios兼容问题

最近在做一个移动端的项目 ,使用到了一个时间选择的插件,显示时间方式 2017-11-05 08:00, 但是向后台传递时间时需要为new Date()格式。

代码:

var serviceTime = new Date("2017-11-05 08:00");

 

本来没有什么关系 ,在Android端也显示也很好 。但是在一台ios机上突然不能使用了 ,后台总是收不到数据。

在测试时发现 ios 在转换后 显示:

怎么也不能进行转换,之后在网上查询了一下,发现这个问题居然是new Date() 日期转时间格式的兼容问题。只需要这样写:

var serviceTime = new Date("2017/11/05 08:00");

我在网上查找了资料,原来是低版本的Safari解释new Date('2013-10-21')这个对象不一样,在IOS5中的Safari不支持这种写法.

在IOS5以上版本(不包含IOS5)中的Safari浏览器能正确解释出Javascript中的 new Date('2013-10-21') 的日期对象。

但是在IOS5版本里面的Safari解释new Date('2013-10-21') 就不正确,在IOS5的Safari中返回的永远是"Invalid Date"。

并且这并不是只有在ios 也是就Safari浏览器中才有的问题,而是在IE ,Firefox中也是不能很好地识别new Date('2013-10-21')写法的日期转换,

只有在chrome中可以很好运用,所以如果想更好的运用日期对象,最好做一下时间格式的处理:

function getDate(time) {  
    //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式   
    time = time.replace(/\-/g, "\/");  
    return time;
};

这样就可以有一个 可以公用的时间格式了!

 

posted @ 2017-12-11 16:05  虫牙抱抱  阅读(298)  评论(0)    收藏  举报