js日期对象JavaScript入门教程前端入门教程

JavaScript Date对象

2021-10-14  本文已影响0人  微语博客

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 对象的原始值。
上一篇下一篇

猜你喜欢

热点阅读