ja-date-utils

时间类工具

Usage no npm install needed!

<script type="module">
  import jaDateUtils from 'https://cdn.skypack.dev/ja-date-utils';
</script>

README

功能介绍

1:dateFormat // 时间格式化

2:dateAdd // 时间增减

3:dateDiff // 计算时间差

4:isInDate // 是否在时间范围内

5:isToday // 是否今天

安装

npm install ja-date-utils --save

引入

import dateUtils from 'ja-date-utils';

测试

dateUtils.dateFormat('1559530562175')
// 结果:2019-06-03 10:56:02

配置

// 不修改,则默认为以下配置
dateUtils.initDateConfig({ // 修改默认时间格式
    dateFormat: 'YYYY-MM-DD hh:mm:ss',// 默认返回的时间格式
    dateAdd: 'YYYY-MM-DD', //时间加减返回的时间格式
}); 
或
dateUtils.initDateConfig('YYYY-MM-DD hh:mm:ss'); // 对所有日期格式都生效

版本更新

1.2.2 修改isToDay方法为isToday
         补充dateDiff方法文档遗漏
1.2.0 新增 isToday 方法(是否今天)
         新增 isInDate 方法(是否在时间范围内)
         新增支持10位时间戳
1.1.5 解决无法部分配置不生效
1.1.2 解决中文乱码

功能

1、 格式化时间: dateFormat (date, fmt)

功能描述:传入时间,返回指定格式

参数 类型 默认 必传 描述
date number / string / date new Date() false 需格式化的时间
fmt string YYYY-MM-DD hh:mm:ss false 需的时间格式(类型)
例子
dateUtils.dateFormat('1559530562175')
// 结果:2019-06-03 10:56:02
dateUtils.dateFormat('1559530562175', "YYYY-MM-DD hh:mm:ss.S 周W(w) t.T month月 第Q季度")
// 结果:2019-06-03 10:56:02.175 周一(1) am.上午 六月 第2季度

也可以这样

dateUtils.dateFormat('2019-06-03 10:56:02', "YYYY年MM月DD日 hh:mm:ss")
// 结果:2019年06月03日 10:56:02

2、 时间增减: dateAdd (date, num, type, fmt)

功能描述:传入时间,对时间进行增减操作

参数 类型 默认 必传 描述
date number / string / date new Date() false 需要增减的时间
num number true 增减的数量,正数为增,负数为减
type string true 增减的类型
fmt string YYYY-MM-DD hh:mm:ss false 返回的时间格式(类型)

type支持的类型有'YYYY'、'MM'、'DD'、'w'、'hh'、'mm'、'ss'

例子
dateUtils.dateAdd("2019-06-03", 2, 'YYYY', 'YYYY-MM-DD')
// 功能:在2019-06-03的基础上增加2年
// 结果:2021-06-03

dateUtils.dateAdd("2019-06-03", 3, 'DD', 'YYYY-MM-DD')
// 功能:在2019-06-03的基础上增加3天
// 结果:2019-06-06

dateUtils.dateAdd("2019-06-03", -3, 'DD', 'YYYY-MM-DD')
// 功能:在2019-06-03的基础上减少3天
// 结果:2019-05-31

3、 计算时间差:dateDiff (parame)

功能描述:传入时间,计算与当前时间的差值

parame参数说明 -- json类型
参数 类型 默认 必传 描述
date number / string / date true 需要对比的时间
dateTarget number / string / date new Date() 目标时间(以此为对比标准)
dateMaxValue number 相差超过该数量单位的后显示原时间)
dateMaxType string 相差超过该数量单位的后显示原时间(类型)
dateFormat string YYYY-MM-DD hh:mm:ss 返回的时间格式(类型)
parame参数说明 -- string类型
参数 类型 默认 必传 描述
parame number / string / date true 需要对比的时间 - 相当于parame.date
例子
dateUtils.dateDiff("2019-04-07 12:12:12")
// 功能:对比 2019-04-07 12:12:12 和 当前系统时间 之间的时间差
// 结果:刚刚
相当于
dateDiff({
    date: "2019-04-07 12:12:12"
})


dateUtils.dateDiff({
    date: "2019-04-07 12:12:12",
    dateTarget: "2019-04-07 12:12:55",
})
// 功能:对比 2019-04-07 12:12:12 和 2019-04-07 12:12:55 之间的时间差
// 结果:刚刚

dateUtils.dateDiff({
    date: "2019-04-07",
    dateTarget: "2019-05-13",
})
// 功能:对比 2019-04-07 和 2019-05-13 之间的时间差
// 结果:1月后

dateUtils.dateDiff({
    date: "2019-04-07",
    dateTarget: "2019-05-13",
    dateMaxType: 'MM',
    dateMaxValue: 1,
    dateFormat: 'YYYY-MM-DD',
})
// 功能:对比 2019-04-07 和 2019-05-13 之间的时间差,超过一个月则直接显示date
// 结果:2019-04-07

4、 是否今天: isToday (date, dateTarget)

功能描述:传入时间,返回布尔值

参数 类型 默认 必传 描述
date number / string / date true 需要对比的时间
dateTarget number / string / date new Date() false 需要对比目标的时间
例子
注:对比的时间的当前系统时间:2020-04-28 11:11:11
dateUtils.isToday('2020-4-28')
// 结果:true

dateUtils.isToday('2020-4-27')
// 结果:false

dateUtils.isToday('2020-4-28', '2020-4-28')
// 结果:true

5、 是否在时间范围内: isInDate (date, num, type, dateTarget)

功能描述:对比时间是否在对应单位的范围内,如 1天内、1周内、1个月内

参数 类型 默认 必传 描述
date number / string / date true 需要对比的时间
num number 1 false 对比的数量
type string DD false 对比的类型
dateTarget number / string / date new Date() false 需要对比目标的时间

type支持的类型有'YYYY'、'MM'、'DD'、'w'、'hh'、'mm'、'ss'

例子
注:对比的时间的当前系统时间:2020-04-28 11:11:11
dateUtils.isInDate('2020-04-27 06:37:46', 2, 'DD')
// 结果:true

dateUtils.isInDate('2020-04-25 06:37:46', 2, 'DD')
// 结果:false

dateUtils.isInDate('2020-04-25 06:37:46', 1, 'w')
// 结果:true

dateUtils.isInDate('2020-04-21 06:37:46', 1, 'w')
    // 结果:false

时间类型

以此时间为例:2019-04-07 05:08:09.630

时间类型 描述
YYYY 2019
MM 月份 04
M 月份 -- 10以下不补0 4
month 月份 -- 中文
DD 07
D 日 -- 10以下不补0 7
hh 小时 05
h 小时 -- 10以下不补0 5
mm 08
m 分 -- 10以下不补0 8
ss 09
s 秒 -- 10以下不补0 9
S 毫秒 630
Q 季度 2
w 星期 -- 数字 7
W 星期 -- 中文
t 时段   (am,pm) am
T 时段   (上午,下午) 上午