plu*_*ben 5 javascript datetime date
JavaScript中设置JavaScript日期对象的日期部分而不影响时间部分的最佳方法是什么?
假设你有这样的约会
Wed Oct 31 2012 10:15:00 GMT-0400 (EDT)
并且您希望在不更改时间的情况下将其更新为11月1日.
乍一看,你认为这会奏效,
exampledate.setFullYear(2012);
exampledate.setMonth(10);
exampledate.setDate(1);
Run Code Online (Sandbox Code Playgroud)
但结果是
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);
Run Code Online (Sandbox Code Playgroud)
将返回
Tue Nov 03 2020 13:10:34 GMT-0500 (EST)
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅JavaScript setFullYear() 方法。
由于 Date 对象的时间组件(例如,小时、分钟、秒、毫秒)不依赖于日期部分(年、月、日),因此将保留您的初始时间组件。如果随后需要更新时间组件,您可以setHours()根据需要安全地使用 或其他方法,因为不会发生对日期组件的隐式更新。
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |