簡體   English   中英

更新javascript對象的日期部分而不更改時間部分

[英]Updating the date portion of a javascript object without changing the time portion

JavaScript中設置JavaScript日期對象的日期部分而不影響時間部分的最佳方法是什么?

假設你有一個這樣的日期Wed Oct 31 2012 10:15:00 GMT-0400 (EDT)

並且您希望在不更改時間的情況下將其更新為11月1日。

乍一看,你認為這會奏效,

exampledate.setFullYear(2012);
exampledate.setMonth(10);
exampledate.setDate(1);

但結果是Sat Dec 01 2012 10:15:00 GMT-0500 (EST)

我認為這是因為10月份有31天而11月份只有30天。因為這顯然不能正常運作。 我還有什么其他選擇? 我是否必須創建一個新的日期對象?

首先設置日期,然后是月份。

JavaScript Date對象setter方法通常允許您(可選)一次設置多個日期/時間組件(除主要組件外),視情況而定 - 這就是您想要做的事情。

對於您的用例, setFullYear的語法是setFullYear(year,month,day) ,因此除了明確設置年份(這將導致根據您的初始日期隱式更新月份和日期),您還可以明確地設置你所在的月份和日期。 例如:

var d = new Date();
d.setFullYear(2020,10,3);

將返回

Tue Nov 03 2020 13:10:34 GMT-0500 (EST)

有關更多詳細信息,請參閱JavaScript setFullYear()方法

由於Date對象的時間組件(例如小時,分鍾,秒,毫秒)不依賴於日期部分(年,月,日),因此將保留初始時間組件。 如果需要更新時間組件,可以根據需要安全地使用setHours()或其他方法,因為不會對日期組件進行隱式更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM