Javascript中对Date类型的常用操作小结
创建Date对象
在 Javascript 中创建 Date 对象的方式有以下几种:
-
使用
new Date()
构造函数创建一个当前时间的 Date 对象。let currentDate = new Date();
-
使用
new Date(value)
构造函数创建指定时间的 Date 对象,value
为一个代表时间的数值或者字符串表达式。let date1 = new Date('2021-07-09'); let date2 = new Date(2021, 6, 9, 10, 30, 0);
获取或设置日期/时间值
Date 对象有一些可用于获取或设置日期/时间值的方法,例如:
-
getTime()
:获取一个日期对象的时间值,以毫秒为单位。let currentDate = new Date(); console.log(currentDate.getTime()); // 输出当前时间的时间戳
-
setTime()
:设置一个日期对象的时间值,以毫秒为单位。let currentDate = new Date(); currentDate.setTime(currentDate.getTime() + 60 * 60 * 1000); // 将当前时间加上一小时 console.log(currentDate); // 输出当前时间加上一小时后的时间对象
-
getFullYear()
、getMonth()
、getDate()
、getDay()
、getHours()
、getMinutes()
、getSeconds()
、getMilliseconds()
分别用于获取一个日期对象的年、月、日、星期、时、分、秒、毫秒等信息。let currentDate = new Date(); console.log(currentDate.getFullYear()); // 输出当前时间的年份 console.log(currentDate.getMonth() + 1); // 输出当前时间的月份 console.log(currentDate.getDate()); // 输出当前时间的日期 console.log(currentDate.getDay()); // 输出当前时间是星期几 console.log(currentDate.getHours()); // 输出当前时间的小时数 console.log(currentDate.getMinutes()); // 输出当前时间的分钟数 console.log(currentDate.getSeconds()); // 输出当前时间的秒数 console.log(currentDate.getMilliseconds()); // 输出当前时间的毫秒数
还有一些方法用于设置指定值,例如:
setFullYear(year, month?, date?)
、setMonth(month, date?)
、setDate(date)
、setHours(hour, min?, sec?, ms?)
、setMinutes(min, sec?, ms?)
、setSeconds(sec, ms?)
、setMilliseconds(ms)
分别用于设置一个日期对象的年、月、日、时、分、秒、毫秒等值。let currentDate = new Date(); currentDate.setHours(10); // 将当前时间的小时数设为10 console.log(currentDate); // 输出当前时间,但小时数为10
格式化输出日期/时间
JavaScript 中,Date 类型提供了多种不同的格式化日期/时间输出函数。其中,toLocaleDateString()
和 toLocaleTimeString()
方法用于把时间对象转换成本地日期字符串和时间字符串。
let currentDate = new Date();
console.log(currentDate.toLocaleDateString()); // 输出当前时间的本地日期字符串
console.log(currentDate.toLocaleTimeString()); // 输出当前时间的本地时间字符串
示例说明
示例1:手动创建日期对象
有时候我们需要手动创建一个日期对象并设置为某一天的开始/结束时间。例如:
function getStartOfDay(date) {
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);
return date;
}
function getEndOfDay(date) {
date.setHours(23);
date.setMinutes(59);
date.setSeconds(59);
date.setMilliseconds(999);
return date;
}
let now = new Date();
let startOfDay = getStartOfDay(now);
let endOfDay = getEndOfDay(now);
console.log(startOfDay.toLocaleString()); // 输出当前日期的开始时间
console.log(endOfDay.toLocaleString()); // 输出当前日期的结束时间
在这个示例中,我们手动创建了一个 Date 对象 now
,然后使用 getStartOfDay()
和 getEndOfDay()
函数把 now
对象分别设置为当天的开始时间和结束时间,最后输出这两个时间。
示例2:倒计时
倒计时在网页开发中非常常见,我们可以使用 JavaScript 中的 Date 对象来实现。例如,下面这段代码实现了一个倒计时的效果:
<p id="demo"></p>
<script>
// 设置倒计时结束的时间
let countDownDate = new Date("August 31, 2021 23:59:59").getTime();
// 每一秒更新一次倒计时
let x = setInterval(function() {
// 获取当前时间戳
let now = new Date().getTime();
// 计算距离倒计时结束还有多少毫秒
let distance = countDownDate - now;
// 计算倒计时剩余的小时、分钟、秒、毫秒数
let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
let seconds = Math.floor((distance % (1000 * 60)) / 1000);
let milliseconds = distance % 1000;
// 把计算出来的时间输出到网页上
document.getElementById("demo").innerHTML = hours + "h "
+ minutes + "m " + seconds + "s " + milliseconds + "ms ";
// 如果倒计时结束,清除倒计时计时器
if (distance < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "EXPIRED";
}
}, 10); // 每隔10毫秒更新一次倒计时
</script>
在这个示例中,我们使用 setInterval
函数每隔10毫秒计算一次距离倒计时结束还有多少时间,然后把计算出来的小时、分钟、秒、毫秒数输出到网页上。当倒计时结束后,清除计时器并把文本改为“EXPIRED”。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript中对Date类型的常用操作小结 - Python技术站