JavaScript中的Date对象表示日期与时间。通过该对象,我们可以处理日期和时间相关的操作,如获取当前时间、设置指定日期时间、比较日期、转换时间格式等等。Date对象的方法和属性非常丰富,可以满足大部分的时间操作需求。同时,需要留意不同浏览器对Date对象的实现可能存在一定的差异。
什么是JavaScript Date对象
JavaScript Date对象是一种用于处理日期和时间的内置对象,可用于存储和处理日期、时间以及与它们相关的信息。
JavaScript Date对象具有各种方法和属性,可以帮助您从不同的方面查看和操作日期和时间。
创建JavaScript Date对象
要创建JavaScript Date对象,请使用new Date()
构造函数,构造函数可接受参数来设置初始日期和时间。如果未提供参数,则将创建日期对象,表示当前日期和时间。
// 创建表示当前日期和时间的Date对象
const today = new Date();
// 创建特定日期的Date对象
const specificDate = new Date('December 17, 1995 03:24:00');
// 创建与特定日期和时间相关的Date对象(年,月(从0开始),日,小时,分钟,秒,毫秒)
const specificDateTime = new Date(1995, 11, 17, 03, 24, 0, 0);
JavaScript Date对象的方法
获取日期和时间
getDate()
方法返回月份中的日期(1-31)
getDay()
方法返回星期中的日期(0-6)
getMonth()
方法返回0到11的整数,表示月份
getFullYear()
方法返回完整的年份(yyyy)
getHours()
方法返回小时(0-23)
getMinutes()
方法返回分钟(0-59)
getSeconds()
方法返回秒数(0-59)
getMilliseconds()
方法返回毫秒数
getTime()
方法返回自1970年1月1日以来的毫秒数
const date = new Date('December 17, 1995 03:24:00');
// 获取日期和时间
const dayOfMonth = date.getDate(); // 返回17
const dayOfWeek = date.getDay(); // 返回0(星期日)
const month = date.getMonth(); // 返回11(12月)
const year = date.getFullYear(); // 返回1995
const hours = date.getHours(); // 返回3
const minutes = date.getMinutes(); // 返回24
const seconds = date.getSeconds(); // 返回0
const milliseconds = date.getMilliseconds(); // 返回 0
const time = date.getTime(); // 返回819170640000毫秒
设置日期和时间
setDate()
方法设置月份中的日期(1-31)
setMonth()
方法设置月份(0-11)
setFullYear()
方法设置完整的年份(yyyy)
setHours()
方法设置小时 (0-23)
setMinutes()
方法设置分钟(0-59)
setSeconds()
方法设置秒数(0-59)
setMilliseconds()
方法设置毫秒数
setTime()
方法设置日期和时间为自1970年1月1日以来的毫秒数
let date = new Date('December 17, 1995 03:24:00');
// 设置日期和时间
date.setDate(18);
date.setMonth(11);
date.setFullYear(1996);
date.setHours(4);
date.setMinutes(25);
date.setSeconds(10);
date.setMilliseconds(500);
date.setTime(819170650500);
格式化日期和时间
使用toLocaleString()
方法、toLocaleDateString()
方法和toLocaleTimeString()
方法可按本地时间格式返回日期和时间,这取决于访问浏览器用户的地理位置。
const date = new Date('December 17, 1995 03:24:00');
// 返回格式化的日期和时间
const localeString = date.toLocaleString(); // 返回 "12/17/1995, 3:24:00 AM"
const localeDateString = date.toLocaleDateString(); // 返回 "12/17/1995"
const localeTimeString = date.toLocaleTimeString(); // 返回 "3:24:00 AM"
JavaScript Date对象的属性
prototype
属性向对象添加属性和方法,以及非继承的属性和方法。
length
属性返回对象的属性数量。
const date = new Date('December 17, 1995 03:24:00');
// 返回Date对象的属性数量
const propCount = date.length; // 返回7
// 向Date对象添加一个自定义方法
Date.prototype.myCustomMethod = function() {
return 'Hello world!';
}
const result = date.myCustomMethod(); // 返回'Hello world!'
如何使用Date对象
在JS中,Date对象非常有用,可以使用Date对象轻松操作日期和时间。例如,您可以创建日期过滤器来检查过去或未来的日期,比较两个日期以找出最新的日期,以及在 UTC(协调世界时)和不同的本地时区之间转换日期和时间。
// 创建一个日期过滤器,仅显示今天之前的日期
function showPastDates() {
const today = new Date();
// 获取节点列表中具有日期属性的所有元素
const dates = document.querySelectorAll('[data-date]');
dates.forEach(function(date) {
// 将日期属性转换为Date对象
const dateStr = date.getAttribute('data-date');
const dateObj = new Date(dateStr);
// 比较是否早于今天
if(dateObj < today) {
date.style.display = 'block';
} else {
date.style.display = 'none';
}
});
}
// 创建一个函数,比较两个日期并返回最新日期
function getLatestDate(date1, date2) {
if(date1 > date2) {
return date1;
} else {
return date2;
}
}
// 转换本地日期时间为UTC
const localDate = new Date();
const utcDate = new Date(localDate.toUTCString().slice(0,-4));