FireFox和IE下使用Date來構造新Date物件的BUG

n8765發表於2015-07-31
正常方式
  我們都知道可以使用new Date()來建立一個Date物件。
  new Date();//Date {Mon Jun 15 2015 15:53:16 GMT+0800}
  也可以用new Date(時間戳)的方式來建立一個指定時間戳的Date物件。
  new Date(1330334847297);//Date {Mon Feb 27 2012 17:27:27 GMT+0800}
  BUG復現
  但今天發現如果將一個已有的Date物件當做新Date建構函式的引數的化,會發生毫秒值丟失的問題
  var a=new Date();
  a.getTime();//1434355104731
  var b=new Date(a);
  b.getTime();//1434355104000相比較上面的,丟失了毫秒部分
  此bug發生在所有IE瀏覽器,以及FireFox火狐瀏覽器中,Chrome瀏覽器正確
  解決方案
  具體導致的原因查了許久未果,能夠得到的結論似乎只有:
  在開發中只使用ECMA中規定的標準方法,其他任何非規定的使用方法都不保證正確。

相關文章