JavaScript 设置日期方法是与 JavaScript 中的 Date 对象关联的功能,旨在简化日期和时间结构中特定元素的调整和修改。这些方法使开发者能够有效地更新 Date 对象中的单个组件,如年、月、日、小时和分钟,为处理和操作 JavaScript 应用中的日期相关值提供了一种方便的方法。
在此,我们将详细讨论这些 JavaScript 设置日期方法。下面的表格包含了最常用的设置日期方法及其对应的描述。
方法 |
描述 |
setFullYear(year) |
设置日期对象的年份。接受四位数年份。如果设置的是闰年的 2 月 29 日,则保持不变;否则,改为新一年中的最近有效日期。 |
setMonth(month) |
设置日期对象的月份(0-11)。接受数值(0-11)。如果月份值超出有效范围,则调整日期,可能会改变年份。 |
setDate(day) |
设置日期对象的月份中的日期(1-31)。接受数值(1-31)。如果日期值超出当前月份的有效范围,则调整日期,可能会改变月份和年份。 |
setHours(hours) |
函数设置日期对象的小时(0-23),仅接受数值。根据需要调整日期以保持有效性,可能会改变月份和年份以及时间。 |
setMinutes(minutes) |
接受从 0 到 59 的数值,并设置特定日期对象的分钟。以确保有效日期和时间的方式调整日期,可能会改变小时、日期、月份和年份。 |
setSeconds(seconds) |
设置日期对象的秒(0-59)。接受数值(0-59)。根据需要调整日期,可能会改变分钟、小时、日期、月份和年份以确保有效日期和时间。 |
setMilliseconds(ms) |
设置日期对象的毫秒(0-999)。接受数值(0-999)。根据需要调整日期,可能会改变秒、分钟、小时、日期、月份和年份以确保有效日期和时间。 |
setTime(milliseconds) |
函数设置自 1970 年 1 月 1 日以来的日期和时间的毫秒数;接受数值。然后整个日期对象转换为反映提供的毫秒数值。 |
setUTCFullYear(year) |
输入为四位数年份,并调整协调世界时(UTC),考虑闰年。 |
setUTCMonth(month) |
设置日期对象的 UTC 月份(0-11)。接受数值(0-11)。根据需要在协调世界时(UTC)中调整日期,可能会改变年份如果月份值超出有效范围。 |
setUTCDate(day) |
接受 1 到 31 之间的数值,并设置特定日期对象的 UTC 月份中的日期。基本上根据需要在协调世界时(UTC)中调整日期,可能会改变月份和年份,如果日期值在当前月份的有效范围内。 |
setUTCHours(hours) |
设置日期对象的 UTC 小时(0-23)。接受数值(0-23)。根据需要在协调世界时(UTC)中调整日期,可能会改变日期、月份和年份以确保有效日期和时间。 |
setUTCMinutes(minutes) |
设置日期对象的 UTC 分钟(0-59)。接受数值(0-59)。根据需要在协调世界时(UTC)中调整日期,可能会改变小时、日期、月份和年份以确保有效日期和时间。 |
setUTCSeconds(seconds) |
设置日期对象的 UTC 秒(0-59)。接受数值(0-59)。根据需要在协调世界时(UTC)中调整日期,可能会改变分钟、小时、日期、月份和年份以确保有效日期和时间。 |
setUTCMilliseconds(ms) |
设置日期对象的 UTC 毫秒(0-999)。接受数值(0-999)。根据需要在协调世界时(UTC)中调整日期,可能会改变秒、分钟、小时、日期、月份和年份以确保有效日期和时间。 |
示例
示例 1:设置方法的简单实现
我们使用设置方法来修改各种日期组件,从而展示了每种方法所固有的多功能性。这些对当前日期的调整适应了多种场景;它们不仅包括添加年份、月份和日期,还包括小时——甚至分钟和毫秒。
<!DOCTYPE html>
<html>
<body>
<div id="result">
<p id="setFullYear"></p>
<p id="setMonth"></p>
<p id="setDate"></p>
<p id="setHours"></p>
<p id="setMinutes"></p>
<p id="setSeconds"></p>
<p id="setMilliseconds"></p>
<p id="setTime"></p>
<p id="setUTCFullYear"></p>
<p id="setUTCMonth"></p>
<p id="setUTCDate"></p>
<p id="setUTCHours"></p>
<p id="setUTCMinutes"></p>
<p id="setUTCSeconds"></p>
<p id="setUTCMilliseconds"></p>
</div>
<script>
const currentDate = new Date();
currentDate.setFullYear(currentDate.getFullYear() + 1);
document.getElementById("setFullYear").innerText = `setFullYear: ${currentDate.toDateString()}`;
currentDate.setMonth(currentDate.getMonth() + 2);
document.getElementById("setMonth").innerText = `setMonth: ${currentDate.toDateString()}`;
currentDate.setDate(currentDate.getDate() + 5);
document.getElementById("setDate").innerText = `setDate: ${currentDate.toDateString()}`;
currentDate.setHours(currentDate.getHours() + 3);
document.getElementById("setHours").innerText = `setHours: ${currentDate.toDateString()}`;
currentDate.setMinutes(currentDate.getMinutes() + 15);
document.getElementById("setMinutes").innerText = `setMinutes: ${currentDate.toDateString()}`;
currentDate.setSeconds(currentDate.getSeconds() + 30);
document.getElementById("setSeconds").innerText = `setSeconds: ${currentDate.toDateString()}`;
currentDate.setMilliseconds(currentDate.getMilliseconds() + 500);
document.getElementById("setMilliseconds").innerText = `setMilliseconds: ${currentDate.toDateString()}`;
currentDate.setTime(currentDate.getTime() + 86400000);
document.getElementById("setTime").innerText = `setTime: ${currentDate.toDateString()}`;
currentDate.setUTCFullYear(currentDate.getUTCFullYear() + 1);
document.getElementById("setUTCFullYear").innerText = `setUTCFullYear: ${currentDate.toDateString()}`;
currentDate.setUTCMonth(currentDate.getUTCMonth() + 2);
document.getElementById("setUTCMonth").innerText = `setUTCMonth: ${currentDate.toDateString()}`;
currentDate.setUTCDate(currentDate.getUTCDate() + 5);
document.getElementById("setUTCDate").innerText = `setUTCDate: ${currentDate.toDateString()}`;
currentDate.setUTCHours(currentDate.getUTCHours() + 3);
document.getElementById("setUTCHours").innerText = `setUTCHours: ${currentDate.toDateString()}`;
currentDate.setUTCMinutes(currentDate.getUTCMinutes() + 15);
document.getElementById("setUTCMinutes").innerText = `setUTCMinutes: ${currentDate.toDateString()}`;
currentDate.setUTCSeconds(currentDate.getUTCSeconds() + 30);
document.getElementById("setUTCSeconds").innerText = `setUTCSeconds: ${currentDate.toDateString()}`;
currentDate.setUTCMilliseconds(currentDate.getUTCMilliseconds() + 500);
document.getElementById("setUTCMilliseconds").innerText = `setUTCMilliseconds: ${currentDate.toDateString()}`;
</script>
</body>
</html>
示例 2:结合设置日期方法进行复杂更新
复杂的日期操作结合了多个设置方法:例如,通过增加两年来调整日期;减去一个月然后加上十五天。最后精确地将时间设定为 18:30:45。
<!DOCTYPE html>
<html>
<body>
<div id="result">
<h2>复杂的日期操作</h2>
<p id="complexManipulation"></p>
</div>
<script>
const currentDate = new Date();
currentDate.setFullYear(currentDate.getFullYear() + 2);
currentDate.setMonth(currentDate.getMonth() - 1);
currentDate.setDate(currentDate.getDate() + 15);
currentDate.setHours(18);
currentDate.setMinutes(30);
currentDate.setSeconds(45);
document.getElementById("complexManipulation").innerText =
`复杂操作结果: ${currentDate.toDateString()} ${currentDate.toTimeString()}`;
</script>
</body>
</html>