申請博客好幾個月了,一直想寫一些東西但是總覺着自己寫不好,就一直擱淺了。廢話不多說,進入正題!
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里面
4.在那些ios系統中是不支持js 的Date()這種轉換的。請大家測試一下,本人知道的是在ios8.4里面仍然存在這個問題。
5.提到這里我們也可以再次查看js Date對象里面的構造方法會發現。其實我們可以采取另外的方法進行new Date;
查資料發現Date的構造函數:new
Date
(
)
new
Date
(
milliseconds
)
new
Date
(
datestring
)
new
Date
(
year
,
month
)
new
Date
(
year
,
month
,
day
)
new
Date
(
year
,
month
,
day
,
hours
)
new
Date
(
year
,
month
,
day
,
hours
,
minutes
)
new
Date
(
year
,
month
,
day
,
hours
,
minutes
,
seconds
)
new
Date
(
year
,
month
,
day
,
hours
,
minutes
,
seconds
,
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