getDate()返回日期不一致问题引发的bug
生活随笔
收集整理的這篇文章主要介紹了
getDate()返回日期不一致问题引发的bug
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述
最近在webapp的開發中遇到一個Date對象中getDate獲取日期的兼容性問題,Date對象的getDate方法返回的日期和傳入的日期不一致,例如:
在android 4.3以下版本,getDate返回的日期會有一天的偏差
var d = new Date('1987/04/12');d.getDate(); // 目標是返回12,但部分機型會返回11問題排查
經過一番折騰Google搜索查找資料,初步認為是以下兩個問題導致:
1、Date對象初始化兼容性問題
Date對象初始化有以下幾種方式:
new Date(); new Date(value); new Date(dateString); new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);其中,第三種方式是通過日期字符串進行初始化,這個日期字符串必須符合Date.parse()的合法日期格式。
new Date('2016-09-25'); // 這種格式無法被所有瀏覽器識別,存在兼容性問題 new Date('2016/09/25'); // 基于'/'格式的日期字符串,被各個瀏覽器所廣泛支持的2、getDate受時區影響問題
在使用測試機進行調試的時候,把時區改變會導致取值有問題,目前還確定是什么問題。
詳見getDate返回錯誤日期
更多閱讀
getDate返回錯誤日期
Date對象詳解
Date.parse()詳解
JS原生Date類型方法的一些冷知識
http://stackoverflow.com/questions/4371252/javascript-getdate-problem?rq=1
轉載于:https://www.cnblogs.com/GeniusLyzh/p/5906305.html
總結
以上是生活随笔為你收集整理的getDate()返回日期不一致问题引发的bug的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Redis开发与运维》学习第一章
- 下一篇: sql 中on和where的区别