關於在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM