JavaScript Date对象用于处理日期和时间。
创建日期
可以通过 new 关键词来定义 Date 对象。
var date1 = new Date();//返回Date对象
console.log(date1);//Thu Oct 14 2021 21:58:44 GMT+0800 (中国标准时间)
var date2 = new Date(1631454531235);//返回指定时间戳的Date对象
console.log(date2);//Sun Sep 12 2021 21:48:51 GMT+0800 (中国标准时间)
var date3 = new Date("2021.10.05 15:20:30");//返回字符串日期的Date对象
console.log(date3);//Tue Oct 05 2021 15:20:30 GMT+0800 (中国标准时间)
var date4 = new Date(2021,10,10);//返回指定格式日期的Date对象
console.log(date4);//Wed Nov 10 2021 00:00:00 GMT+0800 (中国标准时间)
new Date(2021,10,10);表示的日期是2021年11月10日。
时间戳
JS 的时间戳指的是格林威治标准时间1970,1,1零时,距离现在的毫秒数。格林威治标准时间是零时区的地方时。
var now = Date.now();//返回现在的时间戳
console.log(now);//1634221792520
var date1 = new Date();//返回Date对象,可以获取指定对象的时间戳
console.log(date.getTime());//1634221792521
console.log(date.valueOf());//1634221792521
var now2 = Date.parse(new Date());//返回Date对象的时间戳
console.log(now2);//1634221923000
设置时间
通过使用针对日期对象的方法,我们可以很容易地对日期进行操作。
var date = new Date();
date.setFullYear(2022,0,1);//返回指定日期时间戳
console.log(date);//1641048099469
var date = new Date();
date.setDate(date.getDate()+10);//10天后
console.log(date);//Sun Oct 24 2021 22:44:31 GMT+0800 (中国标准时间)
如果增加天数会改变月份或者年份,那么日期对象会自动完成这种转换。
日期比较
通过日期转换时间戳可以很容易比较日期的前后
var time = new Date().setFullYear(2021,10,24);//返回指定日期时间戳
var now = Date.now();//返回当前时间戳
time-now > 0 ? console.log("日期在以后") : console.log("日期在以前");
格式化日期
很多时候我们需要指定格式的日期,这里我在网上找了个JS格式化日期的函数,拿来即用挺好的,感谢大佬。
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
// 获取年份 // ①
if (/(y+)/i.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
// ②
if (new RegExp("(" + k + ")", "i").test(fmt)) {
fmt = fmt.replace(
RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
}
var now = new Date();
console.log(now.format("YY-MM-DD"));//21-10-14
console.log(now.format("YYYY/MM/DD"));//2021/10/14
日期常用和方法
方法 | 描述 |
---|---|
getDate() | 返回月中的第几天(从 1 到 31)。 |
getDay() | 返回星期几(0-6)。 |
getFullYear() | 返回年份。 |
getHours() | 返回小时(从 0-23)。 |
getMilliseconds() | 返回毫秒(0-999)。 |
getMinutes() | 返回分钟(从 0-59)。 |
getMonth() | 返回月份(从 0-11)。 |
getSeconds() | 返回秒数(从 0-59)。 |
getTime() | 返回自 1970 年 1 月 1 日午夜以来与指定日期的毫秒数。 |
getTimezoneOffset() | 返回 UTC 时间与本地时间之间的时差,以分钟为单位。 |
getUTCDate() | 根据世界时,返回月份中的第几天(从 1 到 31)。 |
getUTCDay() | 根据世界时,返回星期几(0-6)。 |
getUTCFullYear() | 根据世界时,返回年份。 |
getUTCHours() | 根据世界时,返回小时(0-23)。 |
getUTCMilliseconds() | 根据世界时,返回毫秒数(0-999)。 |
getUTCMinutes() | 根据世界时,返回分钟(0-59)。 |
getUTCMonth() | 根据世界时,返回月份(0-11)。 |
getUTCSeconds() | 根据世界时,返回秒数(0-59)。 |
方法 | 描述 |
---|---|
now() | 返回自 1970 年 1 月 1 日午夜以来的毫秒数。 |
parse() | 解析日期字符串并返回自 1970 年 1 月 1 日以来的毫秒数。 |
setDate() | 设置 Date 对象中月的某一天。 |
setFullYear() | 设置日期对象的年份 |
setHours() | 设置日期对象的小时。 |
setMilliseconds() | |
setMinutes() | 设置日期对象的分钟数。 |
setMonth() | 设置日期对象的月份。 |
setSeconds() | 设置日期对象的秒数。 |
setTime() | 将日期设置为 1970 年 1 月 1 日之后/之前的指定毫秒数。 |
setUTCDate() | 根据世界时,设置 Date 对象中月份的一天。 |
setUTCFullYear() | 根据世界时,设置日期对象的年份。 |
setUTCHours() | 根据世界时,设置日期对象的小时。 |
setUTCMilliseconds() | 根据世界时,设置日期对象的毫秒数。 |
setUTCMinutes() | 根据世界时,设置日期对象的分钟数。 |
setUTCMonth() | 根据世界时,设置日期对象的月份。 |
setUTCSeconds() | 根据世界时,设置日期对象的秒数。 |
toDateString() | 将 Date 对象的日期部分转换为可读字符串。 |
toISOString() | 使用 ISO 标准将日期作为字符串返回。 |
toJSON() | 以字符串形式返回日期,格式为 JSON 日期。 |
toLocaleDateString() | 使用区域设置约定将 Date 对象的日期部分作为字符串返回。 |
toLocaleTimeString() | 使用区域设置约定将 Date 对象的时间部分作为字符串返回。 |
toLocaleString() | 使用区域设置约定将 Date 对象转换为字符串。 |
toString() | 将 Date 对象转换为字符串。 |
toTimeString() | 将 Date 对象的时间部分转换为字符串。 |
toUTCString() | 根据世界时,将 Date 对象转换为字符串。 |
UTC() | 根据 UTC 时间,返回自 1970 年 1 月 1 日午夜以来的日期中的毫秒数。 |
valueOf() | 返回 Date 对象的原始值。 |
网友评论