在做Mobile終端的Website開發中,我遇到一個很懊惱的問題。
在IOS5以上版本(不包含IOS5)中的Safari瀏覽器能正確解釋出Javascript中的 new Date('2013-10-21') 的日期對象。
但是在IOS5版本里面的Safari解釋new Date('2013-10-21') 就不正確,在IOS5的Safari中返回的永遠是"Invalid Date"。
后來我在網上查找了資料,原來是低版本的Safari解釋new Date('2013-10-21')這個對象不一樣,在IOS5中的Safari不支持這種寫法,
而它支持的寫法為new Date('2013','10','21'),這樣寫就能解決"Invalid Date"的問題,能返回一個Javascript Date回來了。
但是隨之而來的問題有出現了,Date是返回過來了,可是這個Date對象中方法返回的數據可不是我想要的,返回的數據全都不正確。具體是什么原因我也不太清楚,還請知道原理的大蝦們指點下!
現在返回過來的Date對象.getMonth()總要比正常的要多一個月!還有.getDay()返回的星期幾也不正確!╮(╯▽╰)╭懊惱啊,折磨啊。。。。
我都開始罵開發Safari的這幫人了,不過罵歸罵問題還是要解決的,要不工資就木有了!呵呵!
接着我查了很多國外的技術blog,終於找到了解決方案,原來想要IOS5中的Safari能正確解析new Date()那么必須這么寫
new Date('2013/10/21');
艹它姥姥的,就TM這個樣兒折騰了我大半天!主要是DB那邊返回的日期格式是2013-10-21這樣的。導致了在低端版本的Safari中不能正確解釋它!
這下就完美解決IOS5中的問題了!哎,說了半天還是不太了解這種寫法的原理,在這里期待大蝦解釋!