更新javascript对象的日期部分而不更改时间部分

前端之家收集整理的这篇文章主要介绍了更新javascript对象的日期部分而不更改时间部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

JavaScript中设置JavaScript日期对象的日期部分而不影响时间部分的最佳方法是什么?

假设你有这样的约会
2012年10月31日星期三10:15:00 GMT-0400(美国东部时间)

并且您希望在不更改时间的情况下将其更新为11月1日.

乍一看,你认为这会奏效,

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

但结果是
星期六01 01 2012 10:15:00 GMT-0500(EST)

我认为这是因为10月份有31天而11月份只有30天.因为这显然不能正常运作.我还有什么其他选择?我是否必须创建一个新的日期对象?

最佳答案
JavaScript Date对象setter方法通常允许您(可选)一次设置多个日期/时间组件(除主要组件外),视情况而定 – 这就是您想要做的事情.

对于您的用例,setFullYear的语法是setFullYear(年,月,日),因此除了明确设置年份(这将导致根据您的初始日期隐式更新月份和日期),您还可以明确地设置你所在的月份和日期.例如:

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

将返回

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

有关详细信息,请参见the JavaScript setFullYear() method.

由于Date对象的时间组件(例如小时,分钟,秒,毫秒)不依赖于日期部分(年,因此将保留初始时间组件.如果需要更新时间组件,可以根据需要安全地使用setHours()或其他方法,因为不会对日期组件进行隐式更新.

原文链接:https://www.f2er.com/js/429669.html

猜你在找的JavaScript相关文章