亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

關(guān)于toLocaleDateString的坑

enda / 1776人閱讀

摘要:瀏覽器的問題哈哈哈哈,找到問題了,就是的坑。新增的參數(shù)和使程序能夠指定使用哪種語言格式化規(guī)則,允許定制該方法的表現(xiàn)。在舊版本瀏覽器中,和參數(shù)被忽略,使用的語言環(huán)境和返回的字符串格式是各自獨(dú)立實(shí)現(xiàn)的。

Date.prototype.toLocaleDateString 這個方法并不常用,但是不排除一些同學(xué)會喜歡。筆者還是奉勸這部分同學(xué)戒掉這個方法吧。有時候被坑死了還不知道是什么情況。剛剛從坑里了爬出來,所以總結(jié)一下。

從一個真實(shí)的故事開始:

夏日的早晨,卻是很清爽。某程序員一覺醒來就收到測試報的一個問題,“頁面怎么什么都不顯示,js還報錯了”。美好的早晨就此毀掉了...

????????????????

程序員表示一臉懵逼,心想,昨天不是還測試得好好的嗎,頁面也沒有js報錯,今天怎么就跪了?不科學(xué)呀,看看報錯uncaught TypeError: cannot read property "length" of undefined. 媽蛋,空指針, 一定是后臺接口的問題。

說干就干,打開調(diào)試器一下接口請求,完全沒問題呀。什么鬼?

????????????????

于是開啟js調(diào)試模式,看到錯誤報在一下這一段:

const dateTransform = date => {
    const tmp = date.split("/");
    if (tmp[1].length !== 2) {
        tmp[1] = "0" + tmp[1];
    }
    if (tmp[2].length !== 2) {
        tmp[2] = "0" + tmp[2];
    }
    return tmp.join("-");
}

dateTransform(new Date().toLocaleDateString());

看到這段代碼瞬間崩潰,怎么用這種方式處理時間顯示 ????????????????
姑且認(rèn)為某猿是加班到凌晨2點(diǎn)寫的代碼吧(同個物種之間要懂得體諒)。該猿的思路是轉(zhuǎn)換形如"2017/5/12"這樣的字符串為"2017-5-12",講道理可以跑起來的。但是為什昨天的代碼,到了今天就無法執(zhí)行了呢?一定是toLocaleDateString的問題。

筆者在firefox中執(zhí)行了這一段代碼,完全正常,但是在chrome中報錯。瀏覽器的問題?

# chrome
console.log(new Date().toLocaleDateString())
> 2017-5-12

#firefox
console.log(new Date().toLocaleDateString())
> 2017/5/12

哈哈哈哈,找到問題了,就是toLocaleDateString的坑。至于為什么昨天能跑,今天不能跑,秒懂啦。chrome升級了。從57升級到了58。

#Chrome < 58
> new Date().toLocaleDateString()
> output: "2017/5/12"

#Chrome >= 58
> new Date().toLocaleDateString()
> output: "2017-5-12"

此猿想,這個問題也不能完全把鍋甩給chrome,dateTransform明顯有問題啊,于是改:

const dateTransform = date => {
    const tmp = date.split("/");
    if(tmp.length === 1){
        return date;
    }
    if (tmp[1].length !== 2) {
        tmp[1] = "0" + tmp[1];
    }
    if (tmp[2].length !== 2) {
        tmp[2] = "0" + tmp[2];
    }
    return tmp.join("-");
}

dateTransform(new Date().toLocaleDateString());

然后全世界清靜了。
但是某猿思索片刻還是果斷刪掉了這一段,用moment去實(shí)現(xiàn)Date格式化。

后記:

首先看看toLocaleDateString是什么東西:

toLocaleDateString() 方法返回該日期對象日期部分的字符串,該字符串格式因不同語言而不同。新增的參數(shù) locales 和 options 使程序能夠指定使用哪種語言格式化規(guī)則,允許定制該方法的表現(xiàn)(behavior)。在舊版本瀏覽器中, locales 和 options 參數(shù)被忽略,使用的語言環(huán)境和返回的字符串格式是各自獨(dú)立實(shí)現(xiàn)的。

from https://developer.mozilla.org...

這方法最大的問題是在不同的瀏覽器中得到的結(jié)果是不一樣的,例如

# firefox
> new Date().toLocaleDateString()
> output: "2017/5/12"

#IE11
> new Date().toLocaleDateString()
> output: "2017-5-12"

#Chrome < 58
> new Date().toLocaleDateString()
> output: "2017/5/12"

#Chrome >= 58
> new Date().toLocaleDateString()
> output: "2017-5-12"

所以盡可能不要用toLocaleDateString

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/82960.html

相關(guān)文章

  • Angular中關(guān)于時間的操作總結(jié)

    摘要:上顯示出來時間本地系統(tǒng)顯示時間發(fā)送前控制臺打印出來瀏覽器網(wǎng)絡(luò)中監(jiān)測顯示解決方案只有在發(fā)送時間類型的數(shù)據(jù)時會進(jìn)行轉(zhuǎn)換,導(dǎo)致相差個小時,但是我發(fā)送前就將其轉(zhuǎn)換成字符串,就不會造成這樣的結(jié)果了。 創(chuàng)建時間 使用new Date(),可以看見有5種構(gòu)造函數(shù) showImg(https://segmentfault.com/img/remote/1460000013946509); co...

    mengera88 評論0 收藏0
  • javascript 中一些奇葩的日期換算

    摘要:想閱讀更多優(yōu)質(zhì)文章請猛戳博客一年百來篇優(yōu)質(zhì)文章等著你獲取今天的時分秒常用于開始日期的獲取中國標(biāo)準(zhǔn)時間獲取一個月前的日期中國標(biāo)準(zhǔn)時間獲取一個月前的時分秒中國標(biāo)準(zhǔn)時間獲取前一天的日期中國標(biāo)準(zhǔn)時間加一天中國標(biāo)準(zhǔn)時間減一天中國標(biāo)準(zhǔn)時間獲取今 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 1.獲取今天的0時0分0秒(常用于開始日期的獲?。?new Date(new Dat...

    Render 評論0 收藏0
  • javascript 中一些奇葩的日期換算

    摘要:想閱讀更多優(yōu)質(zhì)文章請猛戳博客一年百來篇優(yōu)質(zhì)文章等著你獲取今天的時分秒常用于開始日期的獲取中國標(biāo)準(zhǔn)時間獲取一個月前的日期中國標(biāo)準(zhǔn)時間獲取一個月前的時分秒中國標(biāo)準(zhǔn)時間獲取前一天的日期中國標(biāo)準(zhǔn)時間加一天中國標(biāo)準(zhǔn)時間減一天中國標(biāo)準(zhǔn)時間獲取今 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 1.獲取今天的0時0分0秒(常用于開始日期的獲?。?new Date(new Dat...

    maxmin 評論0 收藏0
  • javascript 中一些奇葩的日期換算

    摘要:想閱讀更多優(yōu)質(zhì)文章請猛戳博客一年百來篇優(yōu)質(zhì)文章等著你獲取今天的時分秒常用于開始日期的獲取中國標(biāo)準(zhǔn)時間獲取一個月前的日期中國標(biāo)準(zhǔn)時間獲取一個月前的時分秒中國標(biāo)準(zhǔn)時間獲取前一天的日期中國標(biāo)準(zhǔn)時間加一天中國標(biāo)準(zhǔn)時間減一天中國標(biāo)準(zhǔn)時間獲取今 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 1.獲取今天的0時0分0秒(常用于開始日期的獲?。?new Date(new Dat...

    testHs 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<