關(guān)于日期時間的格式問題

Bug描述

最近在做項目時用到了ElementUI的el-date-picker組件。項目中需要實現(xiàn)一個定時功能,提交數(shù)據(jù)時,需要將設(shè)置的時間與當(dāng)前的時間做比較,設(shè)置的時間不能小于當(dāng)前時間。我當(dāng)時做這個功能時,是直接將二者相減,來做判斷。releaseTime為我設(shè)定的定時發(fā)布時間。
releaseTime - new Date().getTime()
這樣寫,在通過el-date-picker設(shè)定時間時沒有問題。但在某些情形下,需要將后臺拿到的時間(ms格式)轉(zhuǎn)為常見的日期格式(2017-06-21 16:04:00),并顯示在el-date-picker中,此時再做判斷就出問題,此時無法做出判斷,這是為什么呢?

Bug分析

問題的根源在于通過el-date-picker得到的數(shù)據(jù)和通過毫秒格式的數(shù)據(jù)轉(zhuǎn)化拿到的時間數(shù)據(jù)的類型是不一樣的,這其實算個很低級的錯誤。
我采用的轉(zhuǎn)換時間格式的方法如下:

function timeFormat(val){    
      let d,s;
      d = new Date(val);
      s = d.getFullYear() + "-";
      s += addZero(d.getMonth() + 1) + "-";
      s += addZero(d.getDate()) + " ";
      s += addZero(d.getHours()) + ":";
      s += addZero(d.getMinutes()) + ":";
      s += addZero(d.getSeconds());
      return s;
}

這里得到的releaseTime是String類型的,2017-06-21 16:12:37,而通過el-date-picker得到的releaseTime是Date對象的實例,Wed Jun 21 2017 16:12:37 GMT+0800 (中國標(biāo)準(zhǔn)時間),因此通過timeFormat轉(zhuǎn)換得到的releaseTime無法與new Date()比較大小。

Bug解決方法

解決方法很簡單,只需要將String類型的releaseTime轉(zhuǎn)為Date的實例即可
new Date(releaseTime) - new Date().getTime()
其實,這個地方,getTIme()是畫蛇添足的。Date對象的實例在相減時會自動轉(zhuǎn)化為毫秒格式,返回二者相差的毫秒數(shù)。

image.png

請賜教

文中如有錯誤之處或者您有更好的見解、建議,還望不吝賜教。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • import java.text.SimpleDateFormat;import java.util.Calend...
    霙愔閱讀 810評論 0 2
  • SwiftDate概況 從Swift發(fā)布起,我們就沒有放棄使用Swift。 當(dāng)然,我們希望在項目能夠輕松自如地管理...
    Mee_Leo閱讀 10,348評論 1 13
  • 畫蟲是因為有趣,萬物皆有靈氣,蟲有蟲趣。每次畫蟲莫名其妙的暢想到:“蟲既如此,人不也應(yīng)該如此嗎?如果界定一個人“有...
    劉佳畫室閱讀 623評論 7 7
  • 喜歡你 是沒有頻率的聲調(diào) 淺淺吟唱 可能時光未央 心情剛到 剩下的交給時間
    淺淺藍(lán)九妹閱讀 401評論 0 3
  • 最柔軟的心還在原地
    蒲春閱讀 215評論 0 0

友情鏈接更多精彩內(nèi)容