关于在Safari浏览器中对js Date对象的支持

 申请博客好几个月了,一直想写一些东西但是总觉着自己写不好,就一直搁浅了。废话不多说,进入正题!

ios中和Safari浏览器中对js Date对象的支持

1.问题情形是这样的,需要在特定的时间显示不同的内容。

解决办法有两种:

1.通过后台获取服务器的时间。

 在返回给前端标志,前端通过模板也好,通过其他方式进行判断也好,显示不同的内容。这个我们不管...

2.通过本地获取系统时间显示不同的内容。

 我采用的就是这种方式,但是这里就出现了问题。附上代码

function setContentWithTime(time){
      var current = new Date(),
          setDate = new Date(time).getTime();
      var curTime = new Date(current.getFullYear()+'-'+(current.getMonth()+1)+'-'+current.getDate()).getTime();
      if(curTime == setDate){
        ...
      }else{
        ...
      }        
} 
setContentWithTime("2015-8-13");
 
 

上面这段代码在chrome和ff里面跑都没有问题。但是在safari里面跑就出现了问题。

问题如下:

ok,问题就出现了,在safari里面是无法对形如"xxxx-xx-xx"这种形式的日期进行变换,在safari里面

 

 
new Date('2015-8-13');
Invalid Date
后来查找才发现,safari里面能够识别的日期只能是"xxxx/xx/xx" 这种形式的日期,在safari里面
new Date('2015/8/13');
Thu Aug 13 2015 00:00:00 GMT+0800 
3.同理,我们是不是可以想象一下,在ios系统中是不是也存在这样的问题。
经过测试发现这段代码同样存在问题。

4.在那些ios系统中是不支持js 的Date()这种转换的。请大家测试一下,本人知道的是在ios8.4里面仍然存在这个问题。

5.提到这里我们也可以再次查看js Date对象里面的构造方法会发现。其实我们可以采取另外的方法进行new Date;

查资料发现Date的构造函数:new Date() new Date(milliseconds) new Date(datestring) new Date(yearmonth) new Date(yearmonth,day) new Date(yearmonthdayhours) new Date(yearmonthdayhoursminutes) new Date(year,monthdayhoursminutesseconds) new Date(yearmonthdayhoursminutesseconds,microseconds)
这里需要注意的是:
  • 如果没有任何参数,将返回当前日期
  • 如果参数为一个数字,将数字视为毫秒值,转换为日期
  • 如果参数为一个字符串,将字符串视为日期的字符串表示,转换为日期
  • 还可以使用六个构造函数精确定义,并返回时间

结语:其实是个小问题,但是在做项目的过程中,总是让人头疼,请大家勿喷!!!谢谢!

参考文献:

http://www.w3school.com.cn/jsref/jsref_obj_date.asp

http://blog.sina.com.cn/s/blog_6a0cd5e501011so7.html

http://www.cnblogs.com/keke/p/3372558.html

http://blog.csdn.net/liu510817387/article/details/8688216

转载于:https://www.cnblogs.com/yangblog150417/p/4727687.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值