最近在webapp的開發中遇到一個Date對象中getDate獲取日期的兼容性問題,Date對象的getDate方法返回的日期和傳入的日期不一致,例如:javascript
在android 4.3如下版本,getDate返回的日期會有一天的誤差java
var d = new Date('1987/04/12'); d.getDate(); // 目標是返回12,但部分機型會返回11
通過一番折騰Google搜索查找資料,初步認爲是如下兩個問題致使:android
Date對象初始化有如下幾種方式:web
new Date(); new Date(value); new Date(dateString); new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
其中,第三種方式是經過日期字符串進行初始化,這個日期字符串必須符合Date.parse()的合法日期格式。segmentfault
new Date('2016-09-25'); // 這種格式沒法被全部瀏覽器識別,存在兼容性問題 new Date('2016/09/25'); // 基於'/'格式的日期字符串,被各個瀏覽器所普遍支持的
在使用測試機進行調試的時候,把時區改變會致使取值有問題,目前還肯定是什麼問題。
詳見getDate返回錯誤日期瀏覽器
getDate返回錯誤日期
Date對象詳解
Date.parse()詳解
JS原生Date類型方法的一些冷知識
http://stackoverflow.com/questions/4371252/javascript-getdate-problem?rq=1app