js獲取最近乙個月時最大日期引起的誤差

2021-09-29 10:54:39 字數 1607 閱讀 9550

let date =

newdate

("2019-10-31"

)// 10月31天

date.

setmonth

(date.

getmonth()

-1)// 9月30天

date.

tolocaledatestring()

// > "2019/10/1" // 9月31變成了10月1

解決方案:先把日期改為1 然後改回來

let start =

newdate()

let end =

newdate

(start)

let ed = end.

getdate()

if(ed >28)

end.

setmonth

(end.

getmonth()

+1)if

(ed >28)

獲取時間段完整**:

/**

* 獲取時間段

* @param data

* @param data.offset 偏移量 整數

* @param data.unit 偏移量單位 day/month/year 預設day

* @param data.start 開始時間 預設 new date()

* @param data.format 格式化 預設無 // 無效

* @param data.sort 是否排序

*/const unitlist =

['day'

,'month'

,'year'];

export

function

gettimeslot

(data)

let unit = data.unit

if(unitlist.

indexof

(unit)

<0)

let offset = data.offset ||

0let sort = data.sort

// let format = data.format

let start = data.start ?

newdate

(data.start)

:new

date()

let end =

newdate

(start);if

(unit ==

'day'

)else

if(unit ==

'month'

) end.

setmonth

(end.

getmonth()

+ offset)

if(ed >28)

}else

if(unit ==

'year')if

(sort && start > end)

/* if(format) */

return

[start, end]

}

獲取前乙個月的日期

獲取前乙個月的日期 return 前乙個月的日期 public static string gettodaybeforemonth public static void main string args 剛才那種方式由於擔心int溢位問題,所以採用了兩次相乘,還可以用如下方法 結果是一樣的 獲取 前...

最近乙個月的Update

最近乙個月太忙了,每天早上到公司一直到下班時間,一直在忙。這個月平均每個星期有4天需要加班才能完成工作計畫。google reader有好幾千unread items了。寫部落格就這樣悲劇的被一拖再拖。工作上這個月出現了乙個嚴重的問題。有乙個後台指令碼,由於存在bug,將客戶的資料刪除了。由於之前沒...

strtotime 獲取上乙個月

1.案例 strtotime結合 1 month,1 month,next month 有時候會出現錯誤 date y m d strtotime 1 month 輸出 2018 07 01 1 month 程式設定 30天,相當於7月31日 30天得7月30號 var dump date y m ...