Date类型及dayjs的使用总结

一、Date()

Date数据类型用于处理日期和时间,它可以表示自1970年1月1日00:00:00 UTC(Coordinated Universal Time,国际协调时间)以来的毫秒数。

1.创建Date对象

例如:Tue Oct 31 2023 14:01:33 GMT+0800 (中国标准时间)

// 创建要给包含当前日期和时间的Date对象
const currentDate = new Date()
// 创建一个特定的日期和时间的Date对象, 例如:11 Fri Dec 01 2023 14:08:00 GMT+0800 (中国标准时间)
// new Date(year, month, day, hour, minute, second, millisecond)
const specificDate1 = new Date(2023, 10, 31, 14, 8);
const specificDate2 = new Date('2023-10-31 14:8:00');

2.获取Date对象的值

getMonth 方法返回一个处于 0 到 11 之间的整数,它代表 Date 对象中的月份值。这个整数并不等于按照惯例来表示月份的数字,而是要比按惯例表示的值小 1

const currentDate = new Date()
const year = currentDate.getFullYear(); // 获取当前年
const month = currentDate.getMonth() + 1; // 获取当前月
const day = currentDate.getDate(); // 获取当前日
const hours = currentDate.getHours(); // 获取当前小时数
const minute = currentDate.getMinutes(); // 获取当前分钟数
const second = currentDate.getSeconds(); // 获取当前秒数

3.操作Date对象

3.1 getTime() — 获取时间戳

可以使用getTime()方法来获取Date对象的以毫秒为单位的时间戳。

const currentDate = new Date();
const timestamp = currentDate.getTime();
3.2 setFullYear(year) — 设置Date对象的年份
const currentDate = new Date();
currentDate.setFullYear(2030);

……

二、dayjs()

安装及使用

安装
使用
import dayjs from 'dayjs';cosnt currentDate = dayjs();

image.png

2.获取dayjs对象的值

dayjs().get("year"); // 年
dayjs().get("month"); //月,真实月份需+1
dayjs().get("date"); // 日
dayjs().get("hour"); // 时
dayjs().get("minute"); // 分
dayjs().get("second"); // 秒
dayjs().get("millisecond"); // 毫秒
dayjs().get("day"); // 星期

3.各种日期转dayjs对象

// 1.普通时间转dayjs
dayjs('2023-10-31');
// 2.中国标准时间转dayjs
dayjs('Tue Oct 31 2023 14:43:58 GMT+0800');
// 3.时间戳(ms 毫秒级 13)转dayjs 
dayjs(ms); 
// 4.时间戳(s 秒级 10)转dayjs 
dayjs.unix(ms); 

4.操作dayjs对象

4.1 dayjs()对象格式化

dayjs().format(‘YYYY-MM-DD HH:mm:ss’)

4.2加减指定的时间
dayjs().add(5, 'minute'); // 当前时间加5分钟
dayjs().subtract(5, 'minute'); // 当前时间减5分钟
4.3 diff() — 两个日期直接相差多少时、分、秒
const time1 = dayjs('2022-7-20 12:00:00');
const time2 = dayjs('2023-7-20 12:00:00');
console.log(time2.diff(time1, 'hour'));
console.log(time2.diff(time1, 'minute'));
console.log(time2.diff(time1, 'second'));
4.4 isBefore()/isAfter()/isSame() — 判断两个日期大小
const currentDate = dayjs('2022-12-20');
console.log(currentDate.isBefore(dayjs('2022-01-01'))); // false
console.log(currentDate.isAfter(dayjs('2022-01-01'))); // true
console.log(currentDate.isSame(dayjs('2022-01-01'))); // false

三、常用总结

1.日期(年月日)转时间戳

const time = new Date('2023-10-31 15:00:00');
const timestamp = time.getTime();
const timestamp = time.valueOf();
const timestamp = Date.parse(time);

2.时间戳转日期(年月日)

// dayjs()
const date = dayjs(timestamp).format('YYYY-MM-DD HH:mm:ss');
// Date()
const date = new Date(1663814983000).toLocaleString().replace(/\//g, "-");

3.时间计算

YYYY-MM-DD HH:mm:ss 格式

// 1小时内
const startTime = dayjs().subtract(1, 'hour').format('YYYY-MM-DD HH:mm:ss'); 
// 12小时内
const startTime = dayjs().subtract(12, 'hour').format('YYYY-MM-DD HH:mm:ss');
// 1天内
const startTime = dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss');
// 1周内
const startTime = dayjs().subtract(1, 'week').format('YYYY-MM-DD HH:mm:ss'); 
// 1月内
const startTime = dayjs().subtract(1, 'month').format('YYYY-MM-DD HH:mm:ss');[startTime, dayjs(Date.now()).format('YYYY-MM-DD HH:mm:ss')]

时间戳格式

// 今天
dayjs().startOf('day').valueOf();
[dayjs().startOf('day').valueOf(), Date.now()]// 昨天
const start = dayjs().subtract(1, 'day').startOf('day').valueOf();
const end = dayjs().subtract(1, 'day').endOf('day').valueOf();
[start, end];// 最近24小时
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
[start, end];// 最近7天
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
[start, end];// 最近1个月
const end = new Date();
const start = new Date();start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
[start, end];// 最近3个月
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
[start, end];// 本周
const end = Date.now();
const start = dayjs().startOf('week').add(0, 'day').valueOf();
[start, end];// 上周
const end = dayjs().subtract(1, 'week').endOf('week').add(0, 'day').valueOf();
const start = dayjs().subtract(1, 'week').startOf('week').add(0, 'day').valueOf();
[start, end];// 本月
const end = Date.now();
const start = dayjs().startOf('month').valueOf();
return [start, end];// 上个月
const end = dayjs().subtract(1, 'month').endOf('month').valueOf();
const start = dayjs().subtract(1, 'month').startOf('month').valueOf();
return [start, end];// 本季度
const end = Date.now();
const start = dayjs().startOf('quarter').valueOf();
return [start, end];

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法刷题day28

目录 引言一、截断数组二、双端队列三、日期统计 引言 这几道题是周赛里的几道题目,第一道题目我没用这种方法,但还是做出来了,用的一种比较特殊的思考方法,就是把每一个点都判断出来,不满足要求的就舍弃,…

【你也能从零基础学会网站开发】Web建站之javascript入门篇 JavaScript事件处理

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 什么是DHTML …

Linux基础命令[16]-head

文章目录 1. head 命令说明2. head 命令语法3. head 命令示例3.1 不加参数3.2 -c(按照字节显示)3.3 -n(按照行数显示)3.4 -v(显示文件名) 4. 总结 1. head 命令说明 head:用来显示文件开头&…

Linux认识与学习BASH

Linux认识与学习BASH 认识BASH这个Shellshell是什么系统的合法shell与/etc/shells功能Bash Shell的功能查询命令是否为Bash shell 的内置命令(type)命令的执行与快速编辑按钮 shell的变量功能什么是变量?变量的使用与设置:echo、变量设置规则、unset环境…

springboot网页时装购物系统链接

链接:https://pan.baidu.com/s/1mCmCSbqUCv48_a6wiLBdJg?pwdfalz 提取码:falz 2600套项目源码 https://kdocs.cn/l/cuAdxEBfLiqA 工作室精心制作,包括小程序项目,springboot项目,传统ssm项目,前后端分离项目。你可以用来制作自…

Stable Diffusion 模型下载:Comic Babes(漫画宝贝)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 条目内容类型大模型基础模型SD 1.5来源CIVITAI作者datmuttdoe文件名称comicBabes_v2.safet…

如何用 RAG 技术玩转文档问答?Milvus × 网易有道 QAnything 为你揭秘!

过去一年,RAG 在技术层面发展迅速,为向量数据库赛道添了一把火。RAG 和向量数据库的结合,能够有效解决幻觉、时效性差、专业领域知识不足等阻碍大模型应用的核心问题。 不久前,网易有道开源了自研的 RAG 引擎 QAnything。用户的任…

Q学习(Q-Learning)

Q学习是一种强化学习算法,用于指导代理(Agent)在给定环境中如何采取最优行动。它通过学习状态中的行动价值来实现,属于从与环境的交互中学习,通过尝试和错误,以实现目标的机器学习算法。 下面是Q学习工作原…

突破次元壁!体验数字人的神秘世界

在这个繁忙的城市,人们的生活总是充满了压力和焦虑。他们似乎总是在追寻着什么,却又不知道自己究竟在追寻什么。在这个看似平凡的世界里,隐藏着一个神秘的数字人世界。 这个数字人世界并不是虚构的,而是我们无法触及的另一个维度…

CUDA入门之统一内存

原文来自CUDA 编程入门之统一内存 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础教程 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质…

vite配置

"vite": "^5.1.4" resolve.alias:配置别名 1、执行npm install -D types/node 或者 yarn add types/node -D 2、以下配置代表访问src时可以用“”代替 resolve: {alias: {"": path.resolve(__dirname, "./src"),},}, 使…

【C语言】自定义类型:结构体

1. 结构体类型的声明 1.1 结构体回顾 结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 1.1.1 结构的声明 struct tag {member-list; }variable-list; 例如描述⼀个学⽣: struct Stu {char name[20];//名字int age;//年…

Vue前端项目安装及相关问题解决

目录 安装 以人人开源前端项目安装为例,安装部署及安装过程中的问题的解决思路。开源地址如下: 人人开源 下载代码到本地 安装visial studio code(即VSCode)作为前端开发工具,使用前端前必须安装node.js作为让js运行…

Android 生成SO - 基础工程创建

最近需要给小伙伴扫盲一下如何使用Android Studio 生成一个SO文件,网上找了很多都没有合适的样例,那只能自己来写一个了。 原先生成SO是一个很麻烦的事情,现在Android Studio帮忙做了很多的事情,基本只要管好自己的C代码即可。 …

【梳理】k8s使用Operator搭建Flink集群(高可用可选)

文章目录 1. 架构图2. helm 安装operator3. 集群知识k8s上的两种模式:Native和Standalone两种CR 4. 运行集群实例Demo1:Application 集群Demo2:Session集群优劣 5. 高可用部署问题1:High availability should be enabled when sta…

3.1_2 覆盖与交换

3.1_2 覆盖与交换 (一)覆盖技术 早期的计算机内存很小,比如IBM 推出的第一台PC机最大只支持1MB大小的内存。因此经常会出现内存大小不够的情况。 后来人们引入了覆盖技术,用来解决“程序大小超过物理内存总和”的问题。 覆盖技术的…

DevOps-Jenkins-CI持续集成操作

创建项目 创建个web项目 我这里直接用Spring Web自动生成的demos 启动项目,访问展示如下默认页面信息 项目新增Docker构建配置 在项目下新建docker目录,新增Dockerfile、docker-compose.yml文件 Dockerfile文件,将mytest.jar 复制到容器的…

移动硬盘无法读取怎么修复?分享三个简单方法

移动硬盘作为现代数据存储的重要工具,一旦出现故障,往往会让我们感到焦虑和困惑。当移动硬盘无法读取时,我们需要冷静分析并采取适当的措施来修复它。本文将为您介绍三种有效的修复方法。 一、检查物理连接与驱动程序 当移动硬盘无法读取时&…

LiveGBS流媒体服务器中海康摄像头GB28181公网语音对讲、语音喊话的配置

LiveGBS海康摄像头国标语音对讲大华摄像头国标语音对讲GB28181语音对讲需要的设备及服务准备 1、背景2、准备2.1、服务端必备条件(注意)2.2、准备语音对讲设备2.2.1、不支持跨网对讲示例2.2.2、 支持跨网对讲示例 3、开启音频开始对讲4、搭建GB28181视频…

动手学深度学习-注意力机制Transformer

注意力机制 1. 注意力提示 1.1. 生物学中的注意力提示 **自主性提示(随意线索):收到认知和意识的控制,有主观意愿的推动。**如下图,所有纸制品都是黑白印刷的,但咖啡杯是红色的。 换句话说,这…