date-fns日期工具

1.format()格式化日期函数

日期格式化一直是js比较麻烦的事情.在date-fns中,这件事就很简单了。不需要像在es5中那样需要在Date原型上进行修改之类的操作了。

 function format (date: Date | string | number,format?: string,options?: {locale?: Object}): stringnamespace format {}

该函数传入三个参数,第一个参数为必传参数,可以为date, string, number, 第二个format为日期格式,为可选参数。第三个暂时没用到是可选参数。

const date = new Date();
console.log(date)  // Tue Jun 08 2021 23:28:31 GMT+0800 (中国标准时间)
console.log(format(date, 'HH:mm')); // 23:28
console.log(format(date, 'YYYY-MM-DD HH:mm:ss')); // 2021-06-08 23:28:56
console.log(format(date, 'YYYY-MM-DD')); // 2021-06-08
console.log(format(new Date('2021-06-09T00:00:00.000Z'),'yyyy-MM-dd HH:mm:ss'))  // 2021-06-09 08:00:00
console.log(format(new Date(null),'yyyy-MM-dd HH:mm:ss'))  // 1970-01-01 08:00:00

2.addDays()获得第n天之后的日期

当我们想要得到几天之后的日期,或是前几天的日期,下一周等等的日期,date-fns依然提供了相应地 函数供我们使用。

function addDays (date: Date | string | number,amount: number): Date

该函数需要传入两个参数,第一个为date对象, 第二个为一个number类型的数字。传入1返回明天的日期,2则是后天的日期,以此类推。返回的是一个日期对象。

 let date = new Date(); //2019-01-03console.log(format( addDays(date, 1), 'YYYY-MM-DD HH:mm:ss')); // 2019-01-04 17:46:30//在这里为了阅读方便,我在该函数外面套用了format.console.log(format( addDays(date, 2), 'YYYY-MM-DD')); //2019-01-05

有求之后的日期,就有求之后小时,分钟的,就不在一一累述了,用法也是相同的,只在这里提供函数名:
addHours(): 获得当前小时之后的小时(比如现在5点, 得到七点的时间)
addMinutes():获得当前分钟之后n分钟的时间
addMonths():获得当前月之后n个月的月份

3.subDays()获得当前日期之前n天的日期

 function subDays (date: Date | string | number,amount: number): Date

该函数传入两个参数,第一个参数date可以为Date,string,number,第一个参数为number类型,例如(1,2)。返回一个Date对象。

const date = new Date();
console.log(format(date, 'YYYY-MM-DD HH:mm:ss'));//2019-01-04 11:03:33
console.log(format( subDays(date, 2), 'YYYY-MM-DD HH:mm:ss')); //2019-01-02 11:03:33

同样的和获得之后的时间一样, 也有获得之前n小时,n分钟的时间的方法:
subHours():获得当前时间之前n小时的时间
subMinutes():获得当前时间之前n分钟的时间
subMonths():获得当前月份之前n个月的时间

4.format()格式化毫秒数为日期

format(Date.parse('2019-01-02 11:03:33'), 'YYYY-MM-DD')  //2019-01-02 11:03:33

注:Date.parse() 方法解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为NaN。

5.获取当天零点(00:00)时间

1.const stamp1 = new Date(new Date().setHours(0, 0, 0, 0)); //获取当天零点的时间
//const stamp1 = new Date(new Date().setHours(0, 0, 0, 0)).toISOString() //转化为国际ISO时间
2.const stamp1 = new Date(new Date().toLocaleDateString()); //获取当天零点的时间
注:法2会有浏览器兼容问题 [获取当天零点](https://blog.csdn.net/yujin0213/article/details/104252347)

资料:获取当天零点时间

6.addSeconds() 获得当前时间n秒之后的时间-addSeconds()

addSeconds(date, amount)

示例:

// Add 30 seconds to 10 July 2014 12:45:00:
const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)
//=> Thu Jul 10 2014 12:45:30

项目实例:

async serverTime() {try {const res = await serverTime()this.currentTime = format(new Date(res.current), 'yyyy-MM-dd HH:mm:ss')} catch (err) {throw new Error(err)}},
---------------------------------------------------------------------------------
//获取特定时间按秒自动加 1
async beforeMount() {await this.serverTime()interval(async (iteration, stop) => {if (this.stopFlag === true) {stop()return}this.currentTime = format(addSeconds(new Date(this.currentTime), 1),'yyyy-MM-dd HH:mm:ss')},1000,{ iterations: Infinity, stopOnError: false })
}

date-fns日期工具的使用方法相关推荐

  1. TypeScript日期工具: date-fns日期工具的使用方法

    安装 1. isToday():判断所传入日期是否为今天 2.isYesterday(): 判断是否为昨天 3.isTomorrow()判断是否为明天. 用法与isToday(), isYesterd ...

  2. 我的日期工具类、java常见时间的处理方法

    标题 SimpleDateFormat类到底为啥不是线程安全的? Calendar类roll和add的区别 我的时间操作工具类 判断日期是否是今天,本周,本月,本季度,本年 获取手动设置指定日期 返回 ...

  3. Date日期工具类和Calendar日历类实例及其相互转换

    (一)日期工具类 该类的构造函数如下:   (1)Date(): 分配对象并对其进行初始化,以便它表示分配对象的时间,以最接近的毫秒为单位.   (2)Date(long date): 分配一个对象并 ...

  4. php日期提示警告,php程序报date()警告的处理的解决方法

    本篇讲解php程序报date()警告的处理的解决方法. PHP Warning: date(): It is not safe to rely on the system's timezone set ...

  5. 工具类的方法怎么引用_Hutool中那些常用的工具类和方法

    Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子.如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有.本文将对Hutool中的常用工具类和方法进行介绍. ...

  6. java时间日期工具类_java日期处理工具类

    java日期处理工具类 import java.text.DecimalFormat; import java.text.ParsePosition; import java.text.SimpleD ...

  7. java日期工具类DateUtil

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. DateUtil类 [java] view plain copy package com.util; ...

  8. python pandas 日期_python+pandas+时间、日期以及时间序列处理方法

    python+pandas+时间.日期以及时间序列处理方法 先简单的了解下日期和时间数据类型及工具 python标准库包含于日期(date)和时间(time)数据的数据类型,datetime.time ...

  9. Java日期工具-Joda-Time和FastDateFormat

    目录 文章目录 1.基本介绍 2.JDK中的SimpleDateFormat 2.1问题复现 2.2问题解析 2.3解决方案 2.3.1方案一:每次都实例化 2.3.2方案二:使用synchroniz ...

最新文章

  1. oracle 统计信息字典表,Oracle数据字典表查询
  2. C++两个队列实现一个栈
  3. Apache Kafka-SpringBoot整合Kafka发送复杂对象
  4. [Android]你不知道的Android进程化(3)--进程等级
  5. pta函数统计素数并求和_关于求和的4种函数公式,此文讲透了,尤其是第4种,绝对的高效...
  6. 人工智能领域开展标准化研究
  7. 面向对象的程序开发技术C++教学课件系列之二
  8. 4.7 什么是深度卷积网络?
  9. C语言中利用联合体巧妙处理数据
  10. 小程序学习笔记(2)-简单的小例子了解小程序的语法
  11. 关于同时安装Keil4MDK与C51问题
  12. 关于学籍管理系统的可行性研究报告
  13. linux btrfs 格式化,Btrfs 文件系统修复技巧
  14. Android系统 固定住CPU频率
  15. python--字符串
  16. 对缓存投毒的学习总结
  17. vue中的activated和deactivated
  18. ESP32 开发笔记(四)LVGL控件学习 ColorPicker 颜色选择器控件
  19. 最美的十大经典爱情句子{转}
  20. ZooKeeper各个版本下载

热门文章

  1. centos安装rpmforge
  2. 手动杀毒专题(黑防VIP)
  3. [PHP技术]“加入收藏”代码
  4. 基于java的毕业设计选题双选系统
  5. 擎创技术流 | ClickHouse实用工具—ckman教程(7)
  6. pci速度测试软件,PCI-E 3.0:速度更快,延迟更低
  7. 2021年施工升降机司机(建筑特殊工种)考试资料及施工升降机司机(建筑特殊工种)证考试
  8. 2023健身俱乐部会员管理系统的 设计与实现(论文+开题报告+运行)
  9. 假设检验---p临界值法
  10. 数字船厂信息化整体解决方案(ppt可编辑)