亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js 日期比較 為什么 格式不一樣就不行了,它的底層是怎么轉換的?

js 日期比較 為什么 格式不一樣就不行了,它的底層是怎么轉換的?

白板的微信 2018-07-26 12:22:46
var arr1 = ['2018-03-03','2018-03-04','2018-03-05','2018-03-12','2018-04-05','2018-04-12','2018-12-06']; for(var i=0; i<arr1.length;i++) {     if((arr1[i] >= "2018-03-03" && arr1[i] <= "2018-04-13")) {         continue;     }     console.log(arr1[i]) } 輸出2018-12-06 發現日期只要格式一樣可以像上面這樣直接比較         var arr1 = ['2018-3-3','2018-3-4','2018-3-5','2018-3-12','2018-4-5','2018-4-12','2018-12-6']; for(var i=0; i<arr1.length;i++) {     if((arr1[i] >= "2018-3-3" && arr1[i] <= "2018-4-13")) {         continue;     }     console.log(arr1[i]) } 輸出2018-3-12,2018-4-5,2018-12-6         但把0去掉會出現問題,格式不一樣了     var a = '2018-03-02'; var b = '2018-03-03'; var sum1 = 0; var sum2 = 0; for(var i=0; i<a.length; i++) {     sum1+=''+a[i].charCodeAt(0);     sum2+=''+b[i].charCodeAt(0);     console.log(a[i].charCodeAt(0) ,  b[i].charCodeAt(0)); } console.log(sum1); console.log(sum2); console.log(a.charAt(a));     我試著用charCodeAt函數轉成Unicode,以為它轉成Unicode后再做比較,但貌似不是這樣的,想知道它底層是什么轉換的,為什么格式不一樣就不行了
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

 就是按照字符Unicode 編碼進行比較,按照對應的位置進行比較,一樣比較后續的
2018-12-1,2018-3-1,日期比較肯定第一個大于第二個,你按照字符串比較,1<3的unicode,所以停止比較后面的大于前面的導致出錯

所以不足二位要前面補0才不會出錯,否則要轉為日期對象后再對比


查看完整回答
反對 回復 2018-08-02
  • 1 回答
  • 0 關注
  • 850 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號