Dayjs处理时间函数的插件
现在很多处理时间格式化的插件,我平时项目中最常用的便是Dayjs这个插件,我觉得这个插件还是很好用的。现在说一下这个插件的基本使用。
Dayjs并没有覆盖Javascript原生的Date.prototype,而是创造了一个全新的包含Javascript Date对象的Dayjs的对象。Dayjs对象是不可变的,所有的API操作都会返回一个新的Dayjs对象。
我使用的时候一般会绑在Vue原型上使用。当然,和框架使用没关系
在Vue中一般是全局安装,然后挂载到Vue原型上
//安装方式
yarn add dayjs --save
npm i dayjs --save //引入方式
import dayjs from 'dayjs'
Vue.prototype.$d = dayjs
下述介绍的是最常用的几种时间处理方式,原文档中还有一些项目中不常用的,
有兴趣的话,可以去git查看 https://github.com/iamkun/dayjs/blob/master/docs/zh-cn/API-reference.md
gitDemo地址:https://github.com/dreamITGirl/VueProgect/tree/master/project-demo/src/components/HandleTime
一、基本使用
//当前时间
dayjs()
//格式化的时间
this.$d().format('YYYY-MM-DD HH:mm:ss')
//Date对象
dayjs(new Date(2019,10,15))//输出结果:Thu, 14 Nov 2019 16:00:00 GMT
dayjs(new Date(2019,10,15)).format('YYYY-MM-DD) //输出结果:2019-11-15
//Unix时间戳(毫秒/秒)
//毫秒和秒的差别就在传入的时间戳是13位还是10位
dayjs.unix(new Date().getTime())//输出结果 Tue, 15 Oct 2019 08:01:01 GMT
//自定义时间格式
dayjs().format('DD-MM-YYYY')//输出结果 15-10-2019
//复制时间
Dayjs 对象是不可变的,如果想获得一个对象的拷贝,执行.clone()的方法。像dayjs()中传入一个Dayjs对象也能实现同样的效果
dayjs().clone()
//验证时间(返回值是true或false)
可用单位
单位 | 缩写 | 描述 |
date | 日期 | |
day | d | 星期几(星期天0,星期六6) |
month | M | 月(一月0,十二月11) |
year | Y/y | 年 |
hour | h | 时 |
minute | m | 分 |
second | s | 秒 |
millisecond | ms | 毫秒 |
二、获取和设置时间
①获取年/月/日/星期/时/分/秒/毫秒
//获取或设置
//年
dayjs().year()
dayjs().year(2019)
//月
dayjs().month() //输出9
dayjs().month(10).format('YYYY-MM-DD') //输出2019-11-15
//日
dayjs().date()
dayjs().date(1)
//星期
dayjs().day()
dayjs.day(1)
//时
dayjs().hour()
dayjs().hour(1)
//秒
dayjs().second()
dayjs().second(1)
//毫秒
dayjs().millisecond()
dayjs().millisecond(1)
②设置时间
dayjs().set( unit : String ,value : Int)
dayjs().set('date',30).format('YYYY-MM-DD') //2019-10-30
③获取时间
dayjs().get(unit:String)
dayjs().get('month') //从0开始
三、时间操作(增加,减少)
dayjs().startOf('month').add(1,'day').substract(1,‘day’)
①增加:增加时间并返回一个新的Dayjs()对象
//格式
dayjs().add(value:Number,unit:String)
eg:
dayjs().add(1,'year') //Fri, 16 Oct 2020 01:42:30 GMT
②减少
//格式
dayjs().subtract(value:Number,unit:String)
//举例
dayjs().subtract(7,'month)// Sat, 16 Mar 2019 01:46:59 GMT
③开头时间 : 返回当前时间的开头时间的Dayjs() 对象,如月份第一天
//格式
dayjs().startOf(unit:String)
//举例
dayjs().startOf('month').format('YYYY-MM-DD') //2019-10-01
④末尾时间
//格式
dayjs().endOf(unit : String)
//举例
dayjs().endOf('month').format('YYYY-MM-DD') //2019-10-31
四、格式化时间 .format()
格式 | 输出 | 描述 |
YY | 19 | 两位数年份 |
YYYY | 2019 | 四位数年份 |
M | 1~12 | 月份,从1开始 |
MM | 01~12 | 月份,两位数 |
MMM | Jan~Dec | 简写的月份名称 |
MMMM | January-December | 完整的月份名称 |
D | 1~31 | 月份里的一天 |
DD | 01~31 | 月份里的一天,两位数 |
d | 0~6 | 一周中的一天,星期天是0 |
dd | Su~Sa | 最简写的一周中一天的名称 |
ddd | Sun-Sat | 简写的一周中一天的名称 |
dddd | Sunday-Saturday | 一周中一天的名称 |
H | 0~23 | 小时 |
HH | 00~23 | 小时,两位数 |
h | 1~12 | 小时,12小时制 |
hh | 01~12 | 小时,12小时制,两位数 |
m | 0~59 | 分钟 |
mm | 00~59 | 分钟,两位数 |
s | 0~59 | 秒 |
ss | 00~59 | 秒,两位数 |
SSS | 000~999 | 毫秒,三位数 |
Z | +5:00 | UTC的偏移量 |
ZZ | +500 | UTC 的偏移量,数字前面加上 0 |
A | AM PM | |
a | am pm |
五、时间差 return Number
①获取两个时间差,默认返回值是毫秒
const date1 = dayjs('2019-11-20')
const date2 = dayjs('2019-10-15') date1.diff(date2) //3110400000
date1.diff(date2,'month') //1
date1.diff(date2,'month',true) // 1.1666666666666667
date1.diff(date2,'day') //36
②Unix时间戳
//格式
dayjs().valueOf()
//举例
dayjs().valueOf() //
③Unix时间戳(秒)
dayjs().unix() //1571195388
④UTC偏移量
dayjs().utcOffset() //480
⑤天数(月)
dayjs().daysInMonth() //31
Dayjs处理时间函数的插件的更多相关文章
- jQuery编写插件--封装全局函数的插件(一些常用的js验证表达式)
上一篇写到了jQuery插件的3种类型,介绍了第一种类型的写法--封装jQuery对象的方法插件.这一篇要介绍第二种插件类型:封装全局函数的插件:这类插件就是在jQuery命名空间内部添加函数:这类插 ...
- jQuery基本API小结(下)---工具函数-基本插件
一.工具函数 1.获取浏览器的名称与版本信息 在jQuery中,通过$.browser对象可以获取浏览器的名称和版本信息,如$.browser.chrome为true,表示当前为Chrome浏览器,$ ...
- 如何在sublime安装ctags函数追踪插件
一.这个插件是需要下载执行软件才能够操作的,下载地址http://prdownloads.sourceforge.net/ctags/ctags58.zip 然后解压到自己喜欢的目录下,我是安装到 D ...
- patchdiff2 函数比较插件
https://code.google.com/archive/p/patchdiff2/downloads
- WordPress插件制作教程(六): 插件函数之动作(Actions)函数
这一篇为大家说一下WordPress插件函数吧,要制作插件,了解这些函数是非常有必要的 WordPress插件函数分为“动作”(Actions)和过滤器”(Filters),WordPress 使用这 ...
- vim里添加自动补齐插件,与python 函数补齐
参考 http://www.jb51.net/article/58009.htm 将 # cat ~/.vimrc filetype plugin on let g:pydiction_locati ...
- discuz 插件核心函数hookscript分析.
function hookscript($script, $hscript, $type = 'funcs', $param = array(), $func = '', $scriptextra = ...
- 锋利的jQuery--编写jQuery插件(读书笔记五)[完结篇]
1.表单验证插件Validation 2.表单插件Form 3.动态事件绑定插件livequery 可以为后来的元素绑定事件 类似于jQuery中的live()方法 4.jQuer ...
- Jquery自定义插件之$.extend()、$.fn和$.fn.extend()
jquery插件的种类: 1.对象级别的插件开发,即给jQuery对象添加方法,封装对象方法的插件,如:parent().appendTo() 2.一种是类级别的插件开发,即给jQuery添加新的全局 ...
随机推荐
- 使用vue配合组件--转载
1.由饿了么 UED (知乎专栏)设计的桌面端组件库已经开源,文档:Element,仓库: GitHub - ElemeFE/element: Desktop UI elements for Vue. ...
- go读写文本文件
一.文件读取 1. 将整个文件读取到内存中 package main import ( "flag" "fmt" "io/ioutil" ) ...
- Spring学习笔记(6)——IoC的三种注入方式
1.接口注入(不推荐) 2.构造器注入(死的应用) 3.getter,setter方式注入(比较常用) Type1 接口注入 我们常常借助接口来将调用者与实现者分离.如: public class C ...
- 【知识强化】第四章 网络层 4.4 IPv4
这节课我们来学习一个非常重要的概念,就是IPv4地址,其实也是我们常用的IP地址. 首先我们来了解一下,为什么会有IP地址的出现以及它是做什么用的.假如说在很多年前我遇到一个女生非常的漂亮,等了十年之 ...
- 对struct typedef *的认识
typedef struct node { ……… }NODE,*PNODE; 应该等价于 typedef struct node NODE;//struct node = NODE,eg:struc ...
- 基于Kubernetes 的Cloud Native 实战 培训课程安排
课程安排: 基于Kubernetes 的Cloud Native 实战 课程介绍: 云计算.虚拟化.容器微服务PaaS 技术已经广泛应用于新兴互联网企业(如电商平台.搜索引擎.社交平台网站.位置服务平 ...
- firewall&iptables小记
一.firewall 查看firewall状态 firewall-cmd --state 防火墙开启: 防火墙关闭: 如果firewall为关闭状态,先启动firewall systemctl sta ...
- 那些长短不一的PCI-E插槽都有什么不一样?
https://www.ednchina.com/news/20171121-PCI-E.html 时间:2017-11-21 目前PCI-E插槽已经成为了主板上的主力扩展插槽,除了显卡会用到P ...
- ofbiz:找不到org.ofbiz.widget.ContentWorkerInterface的类文件
ofbiz编译报错: 找不到org.ofbiz.widget.DataResourceWorkerInterface的类文件 找不到org.ofbiz.widget.ContentWorkerInte ...
- 常用github命令
常用github命令 git--版本控制软件 GitHub是一个基于Git的远程文件托管平台(同GitCafe.BitBucket和GitLab等). 在家里,开发完毕部分功能,推送到GitHub: ...