JavaScript中的Date对象,以及常用格式化日期的方法封装

一、Date对象

二、操作Date对象

1、创建Date对象

(1)常用方法

(2)使用示例

2、获取日期

(1)常用方法

(2)使用示例

3、设置日期 

(1)常用方法

(2)使用示例

4、格式转换

(1)常用方法

(2)使用示例

5、获取时间戳

(1)常用方法

(2)使用示例 

三、格式化Date对象


一、Date对象

JavaScript中内置了一个Date对象,它非常强大,提供了很多属性和方法,用来创建、操作、格式化日期和时间,也可以进行各种日期和时间的相关操作;

二、操作Date对象

1、创建Date对象

使用new Date() 构造函数来创建Date实例对象;

(1)常用方法

序号

方法

说明
1new Date()根据当前时间创建Date对象;
2new Date(milliseconds)根据milliseconds(13位时间戳)创建Date对象;
3new Date(dateString)根据dateString(如:"2024/2/20 11:11:00")日期字符串创建Date对象;
4new Date(year, month  [, day, hours, minutes, seconds, milliseconds] )根据传入的年,月,日,时,分,秒,毫秒创建,前两个参数必选;

(2)使用示例


// 1、不传参数,根据当前日期创建
console.log("根据当前日期创建:", new Date());

// 2、传入时间戳创建
console.log("根据时间戳创建:", new Date(1719363544868));

// 3、传入日期字符串创建
console.log("根据日期字符串:", new Date("2014/01/08 11:11:00"));

// 4、传入年,月,日,时,分,秒,毫秒创建
console.log("根据年,月,日,时,分,秒,毫秒创建:", new Date(2014, 2, 20, 11, 30, 23));

 

2、获取日期

(1)常用方法

序号

方法

描述
1getFullYear() 获取4位数年份
2getMonth()获取月份(0-11,0代表一月)
3getDate()获取月份中的某一天(1-31)
4getHours()获取小时数(0-23)
5getMinutes()获取分钟数(0-59)
6getSeconds()获取秒数(0-59)
7getMilliseconds()获取毫秒数(0-999)
8getTime()获取自1970年1月1日以来的毫秒数
9getDay()获取星期中的某一天(0-6,0代表周日)

(2)使用示例

// 创建当前时间的日期对象
const date = new Date("2014-01-08 14:05:06");
console.log("新创建的Date对象:", date);

// 1、获取4位数年份
console.log("getFullYear()方法,获取4位数年份:", date.getFullYear());

// 2、获取月份(0-11,0代表一月)
console.log("getMonth()方法,获取月份:", date.getMonth() + 1);

// 3、获取月份中的某一天(1-31)
console.log("getDate()方法,获取月份中的某一天:", date.getDate());

// 4、获取小时数(0-23)
console.log("getHours()方法,获取小时数:", date.getHours());

// 5、获取分钟数(0-59)
console.log("getMinutes()方法,获取分钟数:", date.getMinutes());

// 6、获取秒数(0-59)
console.log("getSeconds()方法,获取秒数:", date.getSeconds());

// 7、获取毫秒数(0-999)
console.log("getMilliseconds()方法,获取毫秒数:", date.getMilliseconds());

// 8、获取自1970年1月1日以来的毫秒数
console.log("getTime()方法,获取自1970年1月1日以来的毫秒数:", date.getTime());

// 9、获取星期中的某一天(0-6,0代表周日)
console.log("getDay()方法,获取星期中的某一天:", date.getDay());

3、设置日期 

(1)常用方法

序号方法描述
1setFullYear() 设置4位数年份
2setMonth()设置月份(0-11,0代表一月)
3setDate()设置月份中的某一天(1-31)
4setHours()设置小时数(0-23)
5setMinutes()设置分钟数(0-59)
6setSeconds()设置秒数(0-59)
7setMilliseconds()设置毫秒数(0-999)

(2)使用示例

let date = new Date();
console.log("新创建的Date对象:", date);

// 1、设置4位数年份
date.setFullYear(2020);
console.log("setFullYear()方法,设置4位数年份:", date);

// 2、设置月份(0-11,0代表一月)
date.setMonth(10);
console.log("setMonth()方法,设置月份:", date);

// 3、设置月份中的某一天(1-31)
date.setDate(7);
console.log("setDate()方法,设置月份中的某一天:", date);

// 4、设置小时数(0-23)
date.setHours(12);
console.log("setHours()方法,设置小时数:", date);

// 5、设置分钟数(0-59)
date.setMinutes(24);
console.log("setMinutes()方法,设置分钟数:", date);

// 6、设置秒数(0-59)
date.setSeconds(48);
console.log("setSeconds()方法,设置秒数:", date);

// 7、设置毫秒数(0-999)
date.setMilliseconds(123);
console.log("setMilliseconds()方法,设置毫秒数:", date);

console.log("设置完成后的日期:", date);

4、格式转换

(1)常用方法

序号方法描述
1toString()把 Date 对象转换为字符串;
2toDateString()把 Date 对象的日期部分转换为字符串;
3toTimeString()把 Date 对象的时间部分转换为字符串;
4toLocaleString()把 Date 对象,转换为本地时间格式的字符串;
5toLocaleDateString()把 Date 对象的日期部分,转换为本地时间格式的字符串;
6toLocaleTimeString()把 Date 对象的时间部分,转换为本地时间格式的字符串;
7toJSON()把 Date 对象转换为JSON 数据格式字符串;

8

toISOString()把 Date 对象转换为 ISO 标准的日期格式;

(2)使用示例

let date = new Date("2014-01-08 14:05:06");
console.log("新创建的Date对象:", date);

// 1、把 Date 对象转换为字符串;
console.log("toString()方法,转换为字符串:", date.toString());

// 2、把 Date 对象的日期部分转换为字符串;
console.log("toDateString()方法,日期部分转换为字符串:", date.toDateString());

// 3、把 Date 对象的时间部分转换为字符串;
console.log("toTimeString()方法,时间部分转换为字符串:", date.toTimeString());

// 4、把 Date 对象,转换为本地时间格式的字符串;
console.log("toLocaleString()方法,转换为本地时间格式的字符串:", date.toLocaleString());

// 5、把 Date 对象的日期部分,转换为本地时间格式的字符串;
console.log("toLocaleDateString()方法,日期部分转换为本地时间格式的字符串:", date.toLocaleDateString());

// 6、把 Date 对象的时间部分,转换为本地时间格式的字符串;
console.log("toLocaleTimeString()方法,时间部分,转换为本地时间格式的字符串:", date.toLocaleTimeString());

// 7、把 Date 对象转换为JSON 数据格式字符串;
console.log("toJSON()方法,转换为JSON 数据格式字符串:", date.toJSON());

// 8、把 Date 对象转换为 ISO 标准的日期格式;
console.log("toISOString()方法,转换为 ISO 标准的日期格式:", date.toISOString());

 

5、获取时间戳

(1)常用方法

序号方法说明

1

Date.parse(new Date())13位,精确到秒;
2Math.round(new Date())13位,精确到毫秒;
3(new Date()).valueOf()13位,精确到毫秒;
4new Date().getTime()13位,精确到毫秒;
5+new Date()13位,精确到毫秒;

(2)使用示例 

// 1、使用Date.parse()
console.log("使用Date.parse()方法获取时间戳:", Date.parse(new Date()));

// 2、使用Math.round()
console.log("使用Math.round()方法获取时间戳:", Math.round(new Date()));

// 3、使用.valueOf()()
console.log("使用.valueOf()方法获取时间戳:", (new Date()).valueOf());

// 4、使用.getTime()
console.log("使用.getTime()方法获取时间戳:", (new Date()).getTime());

// 5、使用+new Date()
console.log("使用+new Date()方法获取时间戳:", +new Date());

三、格式化Date对象

不难发现,使用new Date()创建出来的日期对象,格式并不是想要的;

下面封装格式化日期的方法,供日常开发参考;

// 创建当前时间的日期对象
const date = new Date("2014-01-08 14:05:06");
console.log("新创建的Date对象:", date);

console.log(format1(date));
console.log(format2(date));
console.log(format3(date));
console.log(format4(date));
console.log(format5(date));
console.log(format6(date));
console.log(format7(date));

// 1、输出日期:y:M:d(不补0)
function format1(date){
    const year = date.getFullYear();
    const month =  date.getMonth() + 1;
    const day = date.getDate();
    return year + '-' + month + '-' + day;
}

// 2、输出日期:yyyy-MM-dd(补0)
function format2(date){
    let year = date.getFullYear();
    let month =  date.getMonth() + 1;
    let day = date.getDate();

    month = month < 10 ? "0" + month : month;
    day = day < 10 ? "0" + day : day;
    return year + '-' + month + '-' + day;
}

// 3、输出时间:H:m:s
function format3(date){
    const hour = date.getHours();
    const minute = date.getMinutes();
    const second = date.getSeconds();

    return hour + ':' + minute + ':' + second;
}

// 4、输出时间:HH:mm:ss
function format4(date){
    let hour = date.getHours();
    let minute = date.getMinutes();
    let second = date.getSeconds();

    hour = hour < 10 ? "0" + hour : hour;
    minute = minute < 10 ? "0" + minute : minute;
    second = second < 10 ? "0" + second : second;

    return hour + ':' + minute + ':' + second;
}

// 5、输出完整日期:y-M-d H:m:s
function format5(date){
    const year = date.getFullYear();
    const month =  date.getMonth() + 1;
    const day = date.getDate();
    const hour = date.getHours();
    const minute = date.getMinutes();
    const second = date.getSeconds();

    return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
}

// 6、输出完整日期:yy-MM-dd HH:mm:ss
function format6(date){
    let year = date.getFullYear();
    let month =  date.getMonth() + 1;
    let day = date.getDate();
    let hour = date.getHours();
    let minute = date.getMinutes();
    let second = date.getSeconds();

    month = month < 10 ? "0" + month : month;
    day = day < 10 ? "0" + day : day;
    hour = hour < 10 ? "0" + hour : hour;
    minute = minute < 10 ? "0" + minute : minute;
    second = second < 10 ? "0" + second : second;

    return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
}

// 7、输出完整日期:yy-MM-dd HH:mm:ss week
function format7(date){
    let year = date.getFullYear();
    let month =  date.getMonth() + 1;
    let day = date.getDate();
    let hour = date.getHours();
    let minute = date.getMinutes();
    let second = date.getSeconds();
    let week = ['日', '一', '二', '三', '四', '五', '六'][date.getDay()];

    month = month < 10 ? "0" + month : month;
    day = day < 10 ? "0" + day : day;
    hour = hour < 10 ? "0" + hour : hour;
    minute = minute < 10 ? "0" + minute : minute;
    second = second < 10 ? "0" + second : second;

    return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second + ' 星期' + week;
}

======================================================================

每天进步一点点~!

Date对象在开发中属于高频点,没事可以多看看哦哦哦~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/750562.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LSTM时间序列基础学习

时间序列 时间序列可以是一维&#xff0c;二维&#xff0c;三维甚至更高维度的数据&#xff0c;在深度学习的世界中常见的是三维时间序列&#xff0c;这三个维度分别是&#xff08;batch_size,time_step,input_dimensions&#xff09;。 其中time_step是时间步&#xff0c;它…

智慧校园-就业管理系统总体概述

在当代教育与信息技术深度融合的背景下&#xff0c;智慧校园就业管理系统成为了连接学生、高校与企业的重要纽带&#xff0c;它以创新的服务理念和技术手段&#xff0c;重塑了职业规划与就业服务的传统模式。这一系统致力于为即将步入社会的学生们提供全面、个性化的支持&#…

C++系统编程篇——Linux第一个小程序--进度条

&#xff08;1&#xff09;先引入一个概念&#xff1a;行缓冲区 \r和\n \r表示回车 \n表示回车并换行 ①代码一 #include<stdio.h> #include<unistd.h> int main()…

MSA 助力实验室测量更稳定、更准确

在汽车制造、石油化工、电子制造等行业,产品的质量和性能需要通过准确的测量来保证。但是由于测量设备的误差、操作人员的主观影响以及环境条件的干扰等因素会导致测量系统出现各种问题,且这些问题会导致测量结果不准确,从而影响产品质量。 随着工业信息化的迅速发展, 各行业对…

【漏洞复现】FastAdmin——任意文件读取漏洞

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 FastAdmin是一个免费开源的后台管理框架&#xff0c;其lang存在…

基于C++实现的EventLoop与事件驱动编程

一&#xff0c;概念介绍 事件驱动编程&#xff08;Event-Driven&#xff09;是一种编码范式&#xff0c;常被应用在图形用户界面&#xff0c;应用程序&#xff0c;服务器开发等场景。 采用事件驱动编程的代码中&#xff0c;通常要有事件循环&#xff0c;侦听事件&#xff0c;…

leetcode-19-回溯

引自代码随想录 [77]组合 给定两个整数 n 和 k&#xff0c;返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]] 1、大致逻辑 k为树的深度&#xff0c;到叶子节点的路径即为一个结果 开始索引保证不重复…

GuiLite C语言实现版本

简介 本项目是idea4good/GuiLite的C语言实现版本&#xff0c;基于2024-06-20节点的版本&#xff08;提交ID&#xff1a;e9c4b57&#xff09;。 本项目仓库&#xff1a;GuiLite_C 需求说明 作为芯片从业人员&#xff0c;国产芯片普遍资源有限&#xff08;ROM和RAM比较少-都是…

英国国王座驾车标的逆向工程

多功能设计和制造解决方案为独特的挑战提供了引人注目的优势。Impossible Creations是一家来自英国的定制扫描、设计和建模公司&#xff0c;专门帮助客户完成无限制得创作任务。在他们最近接到的一个项目中&#xff0c;为了修复象征英国国王座驾的大英帝国吉祥物&#xff0c;Im…

【Docker】docker 替换宿主与容器的映射端口和文件路径

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 docker 替换宿主与容器的映射端口和文件夹 1. 正文 1.1 关闭docker 服务 systemctl stop docker1.2 找到容器的配置文件 cd /var/lib/docker/contain…

Web渗透:文件包含漏洞(part.1)

"文件包含漏洞"&#xff08;File Inclusion Vulnerability&#xff09;是一种常见的Web应用程序漏洞&#xff0c;攻击者可以通过这个漏洞在目标系统上包含或执行任意文件。主要有两种类型的文件包含漏洞&#xff1a; 本地文件包含&#xff08;Local File Inclusion, …

[MySQL]购物管理系统—简略版

本文内容需以MySQL支持 特别感谢baidu comate AI提供的少量虚拟数据 0.建库(建立数据库——utf8字符集&#xff0c;utf8_general_ci排序规则) 1.此项目ER图如下 2.DDLDML(共九表&#xff0c;27数据) SET FOREIGN_KEY_CHECKS 0;DROP TABLE IF EXISTS goods; CREATE TABLE g…

计算机的错误计算(十四)

摘要 解读 GPU和CPU计算上的精度差异&#xff1a;GPU 的 3个输出的相对误差分别高达 62.5%、50%、62.5%。 例1. 计算下列两个矩阵的乘积&#xff1a; 显然&#xff0c;其结果为第一列&#xff1a; 这个结果是准确的。 例2. 已知上面 3 个矩阵是由下面代码产生或输出&…

HTML【重点标签】

一、列表标签 1.无序列表 父级别&#xff1a; 无序列表的标题 ----表示无序列表的整体&#xff0c;用于包裹li标签 子级别&#xff1a; 无序列表一行的内容 ----表示无序列表的每一项&#xff0c;用于包含一行的内容 语义&#xff1a;构建没有顺序的列表 特点&#xff1a;列…

C# YoloV8 模型效果验证工具(OnnxRuntime+ByteTrack推理)

C# YoloV8 模型效果验证工具(OnnxRuntimeByteTrack推理) 目录 效果 项目 代码 下载 效果 模型效果验证工具 项目 代码 using ByteTrack; using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using Sys…

ACC:Automatic ECN Tuning for High-Speed Datacenter Networks 相关知识点介绍(一)

目录 ACC&#xff08;Adaptive Congestion Control&#xff09; 总结 结合 ACC 和 ECN ECN ECN&#xff08;Explicit Congestion Notification&#xff09; 静态 ECN 动态 ECN 对比 总结 FCT——flow completion time 具体解释 小鼠流和大象流 小鼠流&#xff08;…

2024百度之星第二场-小度的01串

补题链接&#xff1a; 码蹄集 一道经典线段树板子题。 区间修改01置换&#xff0c;区间查询子串权值。 唯一区别&#xff0c;权值要求的是相邻字符都不同所需修改的最小字符个数。 我们在线段树节点上分别维护当前连续区间&#xff1a; 奇数位是0的个数&#xff08;j0&…

ROS1通信机制——以topic为例

ROS1 的通信机制 ROS1是一个分布式框架&#xff0c;为用户提供多节点&#xff08;进程&#xff09;之间的通信服务。 ROS1通信时有一个中心节点&#xff08;ROS Master&#xff09;&#xff0c;进行信息匹配等工作。 ROS1 的话题通信机制 通信链接&#xff1a;XML/RPC 信息传…

YOLOV8图像分割预测后输出mask图

训练一个yolov8后&#xff0c;用官方的预测脚本一般是&#xff1a; results model.predict(img_path, saveTrue, save_diroutput_folder) 运行此代码会直接在run里面生成一个文件夹&#xff0c;保存预测图像。如果要获取分割后的mask点&#xff0c;或mask的轮廓点&#xff0…

WIFI各版本的带宽

带宽的定义&#xff1a; 带宽在网络领域通常指信道带宽&#xff0c;即信号在频谱中占用的频宽&#xff0c;单位是MHz&#xff08;兆赫&#xff09;。在无线通信中&#xff0c;带宽越宽&#xff0c;能够传输的数据量越大&#xff0c;因此信道带宽直接影响着数据传输速率。WiFi标…