今天遇見了個bug,運行一年的專案突然日期比較錯誤了,最後發現是字串日期直接比較的原因。
下面直接來調試結果:
很多人多說js字串日期能直接比較,比較智能
alert("2016-10-01" > "2016-10-02");//false
//這裡不管js是按時間格式還是字串格式比較,傳回的都是false
因此可以比較
但是當字串日期不正規時,例如:
alert("2016- 10-4" > "2016-10-30");//true
//在這裡js是把它當作字串比較的,因此不能直接比較,需轉換成日期格式
var date1 = new Date ("2016-10-4");
var date2 = new Date("2016-10-10");
alert(date1> date2);//false
dd
字串日期也是一樣的