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

資訊專欄INFORMATION COLUMN

js 日期對象 31 號 setMonth 的鍋

jlanglang / 706人閱讀

摘要:微信公眾號分享前端后端開發(fā)等相關(guān)的技術(shù)文章,熱點(diǎn)資源,全棧程序員的成長之路。福利詳情請點(diǎn)擊免費(fèi)資源分享

前言

需求:獲取當(dāng)前日期的前一個月份

當(dāng)月有 31 天時,JS 日期對象 setMonth 問題

1. 一般做法

當(dāng)前日期如果不是 31 號, 是沒問題的,是 31 號就會有問題:

// 比如今天是 2018-09-30 號,前一個月應(yīng)該是 2018-08-30 
let now = new Date(new Date("2018-09-30").setMonth(new Date("2018-09-30").getMonth() - 1))
console.log("now :", now.toLocaleString())
// now : 2018/8/30 上午8:00:00

// 比如今天是 2018-10-31 號,前一個月沒有 31 號,所以結(jié)果 2018-10-01:
let now = new Date(new Date("2018-10-31").setMonth(new Date("2018-10-31").getMonth() - 1))
console.log("now :", now.toLocaleString())
// now : 2018/10/1 上午8:00:00
2. 正確的方法: 2.1 方法一

原理: 當(dāng)前時間減去當(dāng)前時間的天數(shù)

function initLastMonth(date) {
            let monthDate = new Date(date);
            let newDate = new Date(monthDate.getTime() - 24 * 60 * 60 * 1000 * monthDate.getDate())
            console.log("newDate :", newDate.toLocaleString())
          return newDate
}
initLastMonth("2018-10-31")
//  newDate : 2018/9/30 上午8:00:00
2.2 方法二

原理: setMonth 之前先 setDate(1)

function initLastMonth(date) {
            const now = new Date(date);
            now.setDate(1)
            now.setMonth(now.getMonth() - 1)
            console.log(now.toLocaleString()) 
            return now
        }
initLastMonth("2018-10-31")
// 2018/9/1 上午8:00:00
最后

技術(shù)文章更新地址:github

全棧開發(fā) 有興趣的朋友可以掃下方二維碼關(guān)注我的公眾號,我會不定期更新有價值的內(nèi)容。

微信公眾號:BiaoChenXuYing
分享 前端、后端開發(fā)等相關(guān)的技術(shù)文章,熱點(diǎn)資源,全棧程序員的成長之路。

關(guān)注公眾號并回復(fù) 福利 便免費(fèi)送你視頻資源,絕對干貨。

福利詳情請點(diǎn)擊: 免費(fèi)資源分享--Python、Java、Linux、Go、node、vue、react、javaScript

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

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

相關(guān)文章

  • JS 在獲取當(dāng)前月的最后一天遇到的坑

    摘要:想閱讀更多優(yōu)質(zhì)文章請猛戳博客一年百來篇優(yōu)質(zhì)文章等著你為了更好的講這節(jié)的內(nèi)容,提示一個處理日期的小技巧,想獲取上個月最后一天,只需要設(shè)置參數(shù)為即可。 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 為了更好的講這節(jié)的內(nèi)容,提示一個 JS 處理日期的小技巧,想獲取上個月最后一天,只需要設(shè)置SetDate參數(shù)為0即可。 var endDate = new Date();...

    zollero 評論0 收藏0
  • 查看指定日期是本年和本月的第幾周

    摘要:約定星期一是一周的開始。參考給定的日期是第本年中的第幾天給定的日期是今年的第幾周給定的日期是本年的第幾天復(fù)制對象,以免修改覆蓋。號就是星期天第一周的周未是號第一周的周未是幾號計算今天是本月的第幾周給定的日期是幾號得到當(dāng)前的號是星期幾。 約定:星期一是一周的開始。其中的計算結(jié)果以如下網(wǎng)站為準(zhǔn)。參考:https://wannianli.tianqi.com/... //給定的日期是第本年中...

    roundstones 評論0 收藏0
  • 需要知道的JS日期知識,都在這了

    摘要:實際上是格林威治標(biāo)準(zhǔn)時間的同義詞默認(rèn)情況下,中的幾乎每個日期方法除了一個都是本地時間。如果你住在格林威治標(biāo)準(zhǔn)時間晚的的地區(qū),你會得到一個日期是月日。需要知道對象日期方法。 為了保證的可讀性,本文采用意譯而非直譯。 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! JS中的 Date 很奇怪。當(dāng)我們需要處理日期和時間的時候比較麻煩,經(jīng)常借助像date-fns和 Mom...

    testbird 評論0 收藏0
  • JavaScript中Date學(xué)習(xí)記錄_013

    摘要:中對象學(xué)習(xí)記錄實例用來處理日期和時間。的對象提供了數(shù)個時間的方法,也相應(yīng)提供了當(dāng)?shù)貢r間的方法。而當(dāng)?shù)貢r間則是指執(zhí)行的客戶端電腦所設(shè)置的時間。構(gòu)造函數(shù)中國標(biāo)準(zhǔn)時間代表自年月日世界標(biāo)準(zhǔn)時間起經(jīng)過的毫秒數(shù)。中國標(biāo)準(zhǔn)時間表示日期的字符串值。 JavaScript中Date對象學(xué)習(xí)記錄 Date 實例用來處理日期和時間。Date對象基于1970年1月1日(世界標(biāo)準(zhǔn)時間)起的毫秒數(shù)。 JavaSc...

    hersion 評論0 收藏0
  • JS基礎(chǔ)篇--日期Date詳解與實例擴(kuò)展

    摘要:實際上,如果直接將表示日期的字符串傳遞給構(gòu)造函數(shù),也會在后臺調(diào)用方法,例如下面的代碼跟前面的是等價的。構(gòu)造函數(shù)構(gòu)造函數(shù)會模仿但有一點(diǎn)不同的是,日期和時間都是基于本地時區(qū)而非來創(chuàng)建。兼容性問題啊其原因就是非標(biāo)準(zhǔn)日期格式。 一:Date類型介紹 要創(chuàng)建一個日期對象,使用new操作符和Date構(gòu)造函數(shù)即可: var now = new Date(); Date.parse()方法 其中Da...

    Apollo 評論0 收藏0

發(fā)表評論

0條評論

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