带你读《现代Javascript高级教程》二十三、Date类:日期和时间处理(1)

简介: 带你读《现代Javascript高级教程》二十三、Date类:日期和时间处理(1)

二十三、Date类:日期和时间处理

引言

在JavaScript中,Date类是用于处理日期和时间的内置类。它提供了一系列属性和方法,使我们能够操作和管理日期、时间、时区等相关信息。本文将详细介绍Date类的属性、常用方法以及应用场景,并提供相应的代码示例。

1. Date类的属性

Date类具有以下常用属性:

  • Date.prototype.constructor:返回创建对象实例的构造函数。对于Date类实例,该属性始终指向Date构造函数。
  • Date.prototype.toString():返回一个表示日期和时间的字符串,通常以本地时间格式显示。
  • Date.prototype.toISOString():返回一个符合ISO 8601标准的日期和时间字符串,格式为YYYY-MM-DDTHH:mm:ss.sssZ。
  • Date.prototype.valueOf():返回一个表示日期对象的原始值的数值,即自1970年1月1日午夜(格林威治时间)以来经过的毫秒数。

2. Date类的常用方法

1)日期和时间获取方法

  • Date.prototype.getFullYear():获取年份(四位数)。
  • Date.prototype.getMonth():获取月份,返回值范围为0(一月)到11(十二月)。
  • Date.prototype.getDate():获取日期,返回值范围为1到31。
  • Date.prototype.getHours():获取小时数,返回值范围为0到23。
  • Date.prototype.getMinutes():获取分钟数,返回值范围为0到59。
  • Date.prototype.getSeconds():获取秒数,返回值范围为0到59。
  • Date.prototype.getMilliseconds():获取毫秒数,返回值范围为0到999。

2)日期和时间设置方法

  • Date.prototype.setFullYear(year[, month[, day]]):设置年份。
  • Date.prototype.setMonth(month[, day]):设置月份。
  • Date.prototype.setDate(day):设置日期。
  • Date.prototype.setHours(hour[, min[, sec[, ms]]]):设置小时数。
  • Date.prototype.setMinutes(min[, sec[, ms]]):设置分钟数。
  • Date.prototype.setSeconds(sec[, ms]):设置秒数。
  • Date.prototype.setMilliseconds(ms):设置毫秒数。

3) 格式化方法

  • Date.prototype.toLocaleDateString():返回一个表示日期部分的字符串,根据本地时间格式化。
  • Date.prototype.toLocaleTimeString():返回一个表示时间部分的字符串,根据本地时间格式化。
  • Date.prototype.toLocaleString():返回一个表示日期和时间的字符串,根据本地时间格式化。

4 日期和时间计算方法

  • Date.prototype.getTime():返回一个表示日期对象的时间值,即自1970年1月1日午夜(格林威治时间)以来经过的毫秒数。
  • Date.prototype.setTime(timeValue):设置日期对象的时间值。
  • Date.prototype.getTimezoneOffset():返回当前系统时区与

UTC之间的时间差,以分钟为单位。

 

  • Date.prototype.addDays(days):在当前日期基础上增加指定天数。
  • Date.prototype.addMonths(months):在当前日期基础上增加指定月份数。
  • Date.prototype.addYears(years):在当前日期基础上增加指定年份数。

3. Date类的应用场景

Date类在JavaScript中广泛应用于以下场景:

 

  • 日期和时间处理:Date类提供了丰富的方法来处理日期和时间,包括日期格式化、日期比较、日期计算等。这在开发中经常需要对日期和时间进行操作的场景中非常有用,如日历应用、倒计时、时间轴等。
  • 时区处理:Date类支持获取当前系统时区与UTC之间的时间差,以及设置特定时区的日期和时间。这对于全球化的应用、跨时区的事件调度、时区转换等非常重要。
  • 日期和时间展示:通过Date类提供的方法,我们可以根据本地时间格式将日期和时间展示给用户。这在用户界面的日期选择、消息时间显示等场景中非常常见。
  • 日期的存储和传输:在与服务器进行数据交互时,常常需要将日期数据存储或传输。Date类提供了获取日期的时间值、转换为ISO字符串等方法,方便数据的存储和传输。

4. 常用的Date方法实现

下面是一些常用的Date方法的实现代码示例,以展示它们的基本用法:

1 格式化日期和时间

a)实现format方法

Date.prototype.format = function(format) {
  const year = this.getFullYear();
  const month = String(this.getMonth() + 1).padStart(2, '0');
  const day = String(this.getDate()).padStart(2, '0');
  const hours = String(this.getHours()).padStart(2, '0');
  const minutes = String(this.getMinutes()).padStart(2, '0');
  const seconds = String(this.getSeconds()).pad
Start(2, '0');
  format = format.replace('YYYY', year);
  format = format.replace('MM', month);
  format = format.replace('DD', day);
  format = format.replace('HH', hours);
  format = format.replace('mm', minutes);
  format = format.replace('ss', seconds);
  return format;};
// 使用示例const date = new Date();const formattedDate = date.format('YYYY-MM-DD HH:mm:ss');
console.log(formattedDate);


带你读《现代Javascript高级教程》二十三、Date类:日期和时间处理(2)https://developer.aliyun.com/article/1349521?groupCode=tech_library

相关文章
|
1月前
|
JavaScript
js开发:请解释什么是ES6的类(class),并说明它与传统构造函数的区别。
ES6的类提供了一种更简洁的面向对象编程方式,对比传统的构造函数,具有更好的可读性和可维护性。类使用`class`定义,`constructor`定义构造方法,`extends`实现继承,并可直接定义静态方法。示例展示了如何创建`Person`类、`Student`子类以及它们的方法调用。
22 2
|
1月前
|
JavaScript 前端开发
js开发:请解释原型继承和类继承的区别。
JavaScript中的原型继承和类继承用于共享对象属性和方法。原型继承利用原型链查找属性,节省内存但不支持私有成员。类继承通过ES6的class和extends实现,支持私有成员但占用更多内存。两者各有优势,适用于不同场景。
19 0
|
1月前
|
JavaScript
JS设置日期为0时0分0秒
项目中经常要给设置默认值,搜索从哪天开始,这时候,如果直接通过new Date()来获取时间,会有时分秒,如果快速设置为0时0分0秒?
27 0
|
1月前
uni-app 65egg.js聊天类chat.js封装(二)
uni-app 65egg.js聊天类chat.js封装(二)
25 1
|
2月前
|
JavaScript 前端开发 网络协议
​Node.js 教程(一) 基本概念与基本使用
​Node.js 教程(一) 基本概念与基本使用
|
2月前
|
移动开发 JavaScript 前端开发
分享76个时间日期JS特效,总有一款适合您
分享76个时间日期JS特效,总有一款适合您
32 0
|
2月前
|
JavaScript 前端开发 UED
分享89个时间日期JS特效,总有一款适合您
分享89个时间日期JS特效,总有一款适合您
29 3
|
1月前
|
JavaScript 前端开发 索引
JavaScript字符串检查:从基础到高级
【2月更文挑战第26天】
26 0
JavaScript字符串检查:从基础到高级
|
10天前
|
JavaScript
【Js】检查Date对象是否为Invalid Date
【Js】检查Date对象是否为Invalid Date
14 0
|
30天前
|
JavaScript 前端开发 Java
JavaScript高级笔记-coderwhy版本(六)
JavaScript高级笔记-coderwhy版本
74 0