本文详细介绍JavaScript中Date对象的创建与用法,重点解析获取当前时间戳的五种方法:getTime、Date.now、Date.parse、valueOf及Number转换。同时提供计算月份差、日期时间差、设置特定时间及格式化日期的实用代码示例,帮助开发者高效处理日期时间相关逻辑。
简介
在JavaScript中,new Date()构造函数用于实例化一个表示当前日期和时间的Date对象。该对象内置了丰富的方法与属性,支持对日期和时间信息的读取与修改操作。
new Date([year, month, day, hour, minute, second, millisecond])
上述参数均为可选。若调用时未传递任何参数,new Date()将自动创建一个代表当前系统日期与时间的Date对象。
一、关于new Date()函数
首先创建一个表示当前时间的 Date 对象
var nowTime = new Date();
console.log(nowTime);
控制台输出 Fri Nov 17 2023 10:41:58 GMT+0800 (中国标准时间)
//获取 Date 当前时间 年月日时分秒
console.log(nowTime.toLocaleString());
//控制台输出 2023/11/17 10:41:58
//获取 Date 当前时间 年月日
console.log(nowTime.toLocaleDateString());
//控制台输出 2023/11/17
//获取 Date 当前时间 时分秒
console.log(nowTime.toLocaleTimeString());
//控制台输出 10:41:58
//获取 Date 对象的年份
console.log(nowTime.getFullYear());
//控制台输出 2023
//获取 Date 对象的月份(注意月份从0开始,所以使用时需要加1)
console.log(nowTime.getMonth());
//控制台输出 11
//获取 Date 对象的日期
console.log(nowTime.getDate());
//控制台输出 17
//获取 Date 对象的小时
console.log(nowTime.getHours());
//控制台输出 10
//获取 Date 对象的分钟
console.log(nowTime.getMinutes());
//控制台输出 41
//获取 Date 对象的秒
console.log(nowTime.getSeconds());
//控制台输出 58
//获取 Date 对象的毫秒
console.log(nowTime.getMilliseconds());
//控制台输出 917二、获取 Date 对象时间戳的五种方式
1、new Date().getTime()方法
const timestamp1 = new Date().getTime();
console.log(timestamp1);
//控制台输出 1700189060045
2、Date.now()方法
const timestamp2 = Date.now();
console.log(timestamp2);
//控制台输出 1700189060045
3、Date.parse(new Date())方法
const timestamp3 = Date.parse(new Date());
console.log(timestamp3);
//控制台输出 1700189060045
4、new Date()).valueOf()方法
const timestamp4 = new Date().valueOf();
console.log(timestamp4);
//控制台输出 1700189060045
5、Number(new Date())方法
const timestamp5 = Number(new Date());
console.log(timestamp5);
//控制台输出 1700189060045三、Date 对象应用实例
实例1:计算月份差
有时候,我们需要知道两个日期之间相差多少天。
可以先将日期转换为毫秒数,然后相减并除以一天的毫秒数(1000 * 60 * 60 * 24)来得到结果。
function daysBetween(date1, date2) {
let oneDay = 1000 * 60 * 60 * 24;
return Math.round((date2 - date1) / oneDay);
}
let start = new Date('June 20, 2022');
let end = new Date('July 20, 2022');
console.log(daysBetween(start, end)); // 输出 "30"实例2:计算两个日期之间的时间差
const startDate = new Date('2021-01-01');
const endDate = new Date('2021-12-31');
const timeDiff = endDate - startDate;
// 计算两个日期之间的天数
const daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24));
// 计算两个日期之间的小时数
const hoursDiff = Math.floor(timeDiff / (1000 * 60 * 60));
// 计算两个日期之间的分钟数
const minutesDiff = Math.floor(timeDiff / (1000 * 60));
// 计算两个日期之间的秒数
const secondsDiff = Math.floor(timeDiff / 1000);
、、与实例1大同小异、、、、实例3:设置特定日期和时间
const date = new Date();
// 设置日期为 2022 年 1 月 1 日
date.setFullYear(2022);
date.setMonth(0);
date.setDate(1);
// 设置时间为 0 时 0 分 0 秒
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
// 获取设置后的日期和时间
const formattedDate1 = date.toDateString();
const formattedTime2 = date.toTimeString();实例4:获取日期元素
在很多场景下,我们需要单独获取日期的年、月、日等元素。
我们可以使用getFullYear()、getMonth()、getDate()等方法来实现这一点。
let now = new Date();
let year = now.getFullYear(); // 获取四位数年份
let month = now.getMonth(); // 注意月份是从0开始计数的,所以需要加1
let day = now.getDate();
console.log(`${year}/${month + 1}/${day}`); // 输出类似 "2022/6/20"实例5:格式化日期
为了美观或适应用户偏好,我们通常需要将日期格式化成特定的字符串。
这里我们使用模板字面量和padStart()方法来实现:
function formatDate(date) {
let year = date.getFullYear();
let month = `0${date.getMonth() + 1}`.slice(-2);
let day = `0${date.getDate()}`.slice(-2);
return `${year}-${month}-${day}`;
}
let today = new Date();
console.log(formatDate(today)); // 输出类似 "2022-06-20"附:日常方法
入参日期的 时间戳
new Date("2022-08-21 11:12:13").getTime() // 1661051533000
入参日期的 星期(注:日:0 ,一:1,二:2,三:3,四:4,五:5,六:6)
new Date("2022-08-21 11:12:13").getDay() // 0
入参日期的 年
new Date("2022-08-21 11:12:13").getFullYear() // 2022
入参日期的 月 -1
new Date("2022-08-21 11:12:13").getMonth() // 7
入参日期的 日
new Date("2022-08-21 11:12:13").getDate() // 21
入参日期的 时
new Date("2022-08-21 11:12:13").getHours() // 11
入参日期的 分
new Date("2022-08-21 11:12:13").getMinutes() // 12
入参日期的 秒
new Date("2022-08-21 11:12:13").getSeconds() // 13
入参日期的 毫秒 (注:最大为999)
new Date("2022-08-21 11:12:13:999").getMilliseconds() //999
总结
至此,关于JavaScript中时间日期函数new Date()的详细介绍完毕。如需了解更多JS时间日期函数new Date()相关内容,建议搜索本站历史文章或继续浏览后续相关文章,感谢大家的支持!