wh-date

1.0.8 • Public • Published

一、功能

介绍

处理日期和时间,主要包括格式化日期和时间、一些在开发中一些经常对时间处理和判断、公历日期转换农历日期、 解决C端苹果时间显示兼容问题【实例化参数为时间戳、-横杠、/斜杠日期字符串】

使用说明

​ 如果大家在使用过程遇到个别方法有BUG, 或者在开发过程中有比较通用的方法、经常用的案例不支持可以在https://gitee.com/wanghuilife/wdx-date 仓库评论留言, 会及时修改BUG

安装:

npm install wh-date

实例化方式

const Wdate = require('wh-date')

const newData = new Wdate(); // 默认本地时间
const newData = new Wdate(milliseconds/seconds);
const newData = new Wdate(dateString);

用法

const Wdate = require('wh-date')

const newData = new Wdate() // 系统当前时间
const newData = new Wdate('2022-01-26 10:00:00') 
const newData = new Wdate('2022-01-26') // 日期格式1
const newData = new Wdate('2022-01-26 10:10') // 日期格式2
const newData = new Wdate('2022-01-26 10:10:01') // 日期格式3
const newData = new Wdate('2022/01/26 10:10:01') // 日期格式4
const newData = new Wdate(1645586844) // 时间戳10位
const newData = new Wdate(1645586880682) // 时间戳13位

注意: C端苹果手机兼容性问题,方式三:仅支持参数为-横杠2022-02-25 10:02:10/斜杠2022/02/25 10:02:10表示日期方法

format格式化日期字符说明

传入字符串,更新指定字符串替换相应的值进行显示

参数字符串 说明
yy
MM
dd
HH 小时 24小时制
hh 小时 12小时制
mm 分钟
ss
ww 星期

二、方法列表

方法 功能说明 版本
常规方法
getYear 返回年份
getMonth 返回月份(1-12)
getDate 返回月中的第几天(1-31)
getHours 返回小时(1-12/1-24小时制)
getMinutes 返回分钟(1-59)
getSeconds 返回秒(1-59)
getMilliseconds 返回毫秒(1-999)
getTime 返回自 1970 年 1 月 1 日午夜以来与指定日期的毫秒数/秒数
getDay 返回星期(0-6)
get 返回年月日时分秒毫秒【根据参数返回】
扩展方法
getMonthCountDay 返回当月最后一天数
getQuarter 返回季节(1-4) V1.0.4
getAge 返回年龄(大于等0的整数) V1.0.5
getCconstellation 返回星座 V1.0.5
getDayOfYear 返回日期是当年的多少天 V1.0.6
getAdd 返回日期相加的新日期 V1.0.8
getSubtract 返回日期相减的新日期 V1.0.8
getDateDiff 返回日期相差天、时、总小时、分、秒、时间戳 V1.0.8
getDiffDay 返回日期相差天数(自然天数) V1.0.8
格式化数据方法
getTimeFrame 返回不同时间段特定文案,默认AM(上午0-12点) , PM(下午12-24点)
getAllDate 返回格式化日期,默认返回yyy-MM-dd格式
getAllTime 返回格式化时间,默认返回hh:mm:ss格式
getFormat 返回格式化日期,默认返回yyy-MM-dd hh:mm:ss格式 V1.0.8
getFormatOne 返回格式化日期:
当天日期:显示hh:ss
7天内:显示星期ww
7天前:显示yyy-MM-dd hh:mm:ss
getFuture 返回传入时间戳有多少天、时、分、秒、时间戳
农历日期方法
getLunarZodiac 返回农历生肖鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪 V1.0.5
getLunar 返回农历日期数字/汉字/干支/润月信息 V1.0.5
日期判断方法
isValid 判断日期是否合法 V1.0.4
isLeapYear 判断是否是闰年
isBefore 判断日期在指定日期前 V1.0.4
isSame 判断日期是否相同 V1.0.4
isAfter 判断日期在指定日期后 V1.0.4
isBetween 判断指定日期是否在传入日期之间 V1.0.8
isThisYear 判断是否是当年 V1.0.6
isThisMonth 判断是否是当月 V1.0.6
isThisWeek 判断是否是当前周 V1.0.6
isToday 判断是否是当天 V1.0.6
isWorkDay 判断是否是工作日/周末 V1.0.6
日期转换方法
toString 返回包含时间信息的 string V1.0.8
toArray 返回将日期转换数组 V1.0.8
toJSON 返回序列化为 ISO 8601 格式的字符串 V1.0.8
toObject 返回包含时间信息的 Object V1.0.8
日期设置方法
setYear 设置日期的年份 V1.0.8
setMonth 设置日期的月份 V1.0.8
setDate 设置日期中月的某一天 V1.0.8
setHours 设置日期的小时 V1.0.8
setMinutes 设置日期的分钟数 V1.0.8
setSeconds 设置日期的秒数 V1.0.8
setMilliseconds 设置日期的毫秒数 V1.0.8
set 设置年月日时分秒毫秒【根据参数设置】 V1.0.8
setStartOf 设置到一个时间的开始 V1.0.8
setEndOf 设置到一个时间的结束 V1.0.8

三、方法说明

1、常规方法

getYear

  • 功能:获取年份

  • 参数:无

  • 返回值:返回年份

  • 返回数据类型Number

  • 用法

    const newData = new Wdate()
    console.log(newData.getYear()) // 2022

getMonth

  • 功能:获取月份

  • 参数:(isFillZero)

    参数名 参数类型 参数默认值 参数说明
    isFillZero Boolean false 是否补0,小于10前边补零
  • 返回值:返回月份1-12|01-12

  • 返回数据类型Number|String

  • 用法

    const newData = new Wdate('2022-01-27 13:05:03')
    console.log(newData.getMonth()) // 1
    console.log(newData.getMonth(true)) // 01

getDate

  • 功能:获取当月第几天

  • 参数:(isFillZero)

    参数名 参数类型 参数默认值 参数说明
    isFillZero Boolean false 是否补0,小于10前边补零
  • 返回值:返回当月第几天1-31|01-31

  • 返回数据类型Number|String

  • 用法

    const newData = new Wdate('2022-01-27 13:05:03')
    console.log(newData.getDate()) // 27
    console.log(newData.getDate(true)) //27

getHours

  • 功能:获取小时

  • 参数:(isFillZero, isTwentyFour)

    参数名 参数类型 参数默认值 参数说明
    isFillZero Boolean false 是否补0,小于10前边补零
    isTwentyFour Boolean true 是否是24小时制
  • 返回值:返回小时0-24|00-24, 如果12小时制返回0-12|00-12

  • 返回数据类型Number|String

  • 用法

    const newData = new Wdate() // 当前日期2022年1月27日 13:05:03
    console.log(newData.getHours()) // 13 24小时制
    console.log(newData.getHours(false,false)) //1 12小时制不补零
    console.log(newData.getHours(true,false)) //01 12小时制补零

getMinutes

  • 功能:获取分钟

  • 参数:(isFillZero)

    参数名 参数类型 参数默认值 参数说明
    isFillZero Boolean false 是否补0,小于10前边补零
  • 返回值:返回分钟0-59|00-59

  • 返回数据类型Number|String

  • 用法

    const newData = new Wdate() // 当前日期2022年1月27日 13:05:03
    console.log(newData.getMinutes()) // 5
    console.log(newData.getMinutes(true)) // 05 不足10补0

getSeconds

  • 功能:获取秒数

  • 参数:(isFillZero)

    参数名 参数类型 参数默认值 参数说明
    isFillZero Boolean false 是否补0,天数小于10前边补零
  • 返回值:返回秒数0-59|00-59

  • 返回数据类型Number|String

  • 用法

    const newData = new Wdate() // 当前日期2022年1月27日 13:05:03
    console.log(newData.getSeconds()) // 3
    console.log(newData.getSeconds(true)) //03 不足10补0

getMilliseconds

  • 功能:获取毫秒数

  • 参数:(isFillZero)

    参数名 参数类型 参数默认值 参数说明
    isFillZero Boolean false 是否补0,天数小于10前边补零
  • 返回值:返回毫秒数0-999|00-999

  • 返回数据类型Number|String

  • 用法

    const newData = new Wdate(1643264411611)
    console.log(newData.getMilliseconds()) // 611

getTime

  • 功能:获取时间戳

  • 参数:(length)

    参数名 参数类型 参数默认值 参数说明
    length Number 13 13毫秒、10秒
  • 返回值:返回时间戳毫秒、秒,返回数据类型:Number

  • 用法

    const newData = new Wdate('2008-02-01 10:02:02')
    console.log(newData.getTime()) // 1643265801333  毫秒13位
    console.log(newData.getTime(10)) // 1643265801 秒10位
    console.log(newData.getTime(12)) //传入参数非法

getDay

  • 功能:返回星期

  • 参数:(isChinese)

    参数名 参数类型 参数默认值 参数说明
    isChinese Boolean true 是否显示中文
  • 返回值:返回星期,返回数据类型:Number|String, Number 返回(0、1、2、3、4、5、6),0代表星期日, String返回大写(一、二、三、四、五、六、日)

  • 用法

    const newData = new Wdate() // 当前日期2022年1月27日 13:05:03
    console.log(newData.getDay()) // 四
    console.log(newData.getDay(false)) // 4

get

  • 功能:设置指定年月日时分秒毫秒

  • 参数:(unit,isFillZero)

    参数名 参数类型 参数默认值 参数说明
    unit* Number date 设置的数值
    isFillZero Boolean true 是否补0

    unit参数类型说明:

    ID 参数值 缩写 说明
    1 year y
    2 month M(大写)
    3 date d
    4 hour H(大写) 小时
    5 minute m 分钟
    6 second s 秒钟
    7 millisecond ms 毫秒
  • 用法

    const dateTime = "2022-04-14 12:22:32"
    console.log(new Wdate(dateTime).get('year')) // 2022
    console.log(new Wdate(dateTime).get('month')) // 4
    console.log(new Wdate(dateTime).get('month', true)) // 04   不足10前边补0
    console.log(new Wdate(dateTime).get('date')) // 14
    console.log(new Wdate(dateTime).get('hour')) // 12
    console.log(new Wdate(dateTime).get('minute')) // 22
    console.log(new Wdate(dateTime).get('second')) // 32
    console.log(new Wdate(dateTime).get('millisecond')) // 0

    unit缩写模式

    const dateTime = "2022-04-14 12:22:32"
    console.log(new Wdate(dateTime).get()) // 14 默认为天
    console.log(new Wdate(dateTime).get('y')) // 2022
    console.log(new Wdate(dateTime).get('M')) // 4
    console.log(new Wdate(dateTime).get('d')) // 14
    console.log(new Wdate(dateTime).get('H')) // 12
    console.log(new Wdate(dateTime).get('m')) // 22
    console.log(new Wdate(dateTime).get('s')) // 32
    console.log(new Wdate(dateTime).get('ms')) // 0

2、扩展方法

getMonthCountDay

  • 功能:获取当月总天数

  • 参数:无

  • 返回值:2月【28】、2月闰年【29】、4、6、9、11月【30】、1、3、5、7、8、10、12月【31】

  • 返回数据类型Number

  • 用法

    const newData = new Wdate('2008-02-01 10:02:02')
    console.log(newData.getMonthCountDay()) // 29
    
    const newData = new Wdate()
    console.log(newData.getMonthCountDay()) // 31

getQuarter

  • 功能:获取季度

  • 参数:(forMartText)

    forMartText是自定义格式为一个长度为4的数组,数组下标0-3分别对应1-4季,最终返回自定义文案

    参数名 参数类型 参数默认值 参数说明
    forMartText Array 自定义格式
  • 返回值:1-4, 1-3月返回1,4-6月返回2,7-9月返回3,10-12月返回4

  • 返回数据类型Number|String【自定义格式】

  • 用法

    const newData = new Wdate('2022-02-14 12:20:20')
    
    console.log(newData.getQuarter(['第一季度','第二季度','第三季度','第四季度'])) // 第一季度
    console.log(newData.getQuarter(['春','夏','秋','冬'])) // 春
    console.log(newData.getQuarter()) // 1

getAge

  • 功能:获取年龄

  • 参数:无

  • 返回值:大于等于0的整数

  • 返回数据类型Number

  • 用法

    const newData = new Wdate('1992-04-24') 
    console.log(newData.getAge()) // 29
    
    const newData = new Wdate('1992-01-01') 
    console.log(newData.getAge()) // 30

注意:实例化日期不能大于当前日期

getCconstellation

  • 功能:获取星座

  • 参数:无

  • 返回值:12星座白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座、水瓶座、双鱼座

  • 返回数据类型String

  • 星座和时间对应表:

    ID 星座名称 对应日期
    1 水瓶座 1.20 - 2.18
    2 双鱼座 2.19 - 3.20
    3 白羊座 3.21 - 4.19
    4 金牛座 4.20 - 5.20
    5 双子座 5.21 - 6.21
    6 巨蟹座 6.22 - 7.22
    7 狮子座 7.23 - 8.22
    8 处女座 8.23 - 9.22
    9 天秤座 9.23 - 10.23
    10 天蝎座 10.24 - 11.22
    11 射手座 11.23 - 12.21
    12 摩羯座 12.22 - 1.19
  • 用法

const newData = new Wdate('1992-2-22')
console.log(newData.getCconstellation()) // 双鱼座

getDayOfYear

  • 功能:返回是当年的多少天

  • 参数:无

  • 返回值:1-366

  • 返回数据类型Number

  • 用法

    const newData = new Wdate('2022-01-05')
    console.log(newData.getDayOfYear()) // 5

getAdd

  • 功能:返回增加一定时间的新时间

  • 参数:(size, unit, formart)

    format参数传值参考格式化数据方法

    参数名 参数类型 参数默认值 参数说明
    size Number 0/ 如果为负数则同getSubtract方法一样 大小
    unit String date 类型
    formart String yy-MM-dd HH:mm:ss 格式化格式

    unit参数类型说明:

    ID 参数值 缩写 说明
    1 year y
    2 month M(大写)
    3 date d
    4 hour H(大写) 小时
    5 minute m 分钟
    6 second s 秒钟
    7 millisecond ms 毫秒
    8 quarter Q(大写)
    9 week w
  • 返回值:格式化日期

  • 返回数据类型:String

  • 用法

    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'year') // 2023-02-22 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'month')) // 2022-04-22 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'date')) // 2022-02-23 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'hour')) // 2022-02-22 13:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'minute')) // 2022-02-22 12:13:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'second')) // 2022-02-22 12:12:13
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(2000, 'millisecond')) // 2022-02-22 12:12:14
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'quarter')) // 2022-06-22 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'week')) // 2022-03-01 12:12:12

getSubtract

  • 功能:返回减少一定时间的新时间

  • 参数:(size, unit, formart)

    format参数传值参考格式化数据方法

    参数名 参数类型 参数默认值 参数说明
    size Number 0/ 如果为负数则同getAdd方法一样 大小
    unit String date 类型
    formart String yy-MM-dd HH:mm:ss 格式化格式

    unit参数类型说明:

    ID 参数值 缩写 说明
    1 year y
    2 month M(大写)
    3 date d
    4 hour H(大写) 小时
    5 minute m 分钟
    6 second s 秒钟
    7 millisecond ms 毫秒
    8 quarter Q(大写)
    9 week w
  • 返回值:格式化日期

  • 返回数据类型:String

  • 用法

    默认值天数
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(10)) //2022-03-04 12:12:12
    
    传参模式
    console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'year')) // 2021-02-22 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'month')) // 2022-01-22 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'date')) // 2022-02-21 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'hour')) // 2022-02-22 11:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'minute')) // 2022-02-22 12:11:12
    console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'second')) // 2022-02-22 12:12:11
    console.log(new Wdate('2022-02-22 12:12:12').getSubtract(2000, 'millisecond')) // 2022-02-22 12:12:10
    console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'quarter')) // 2021-11-22 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'week')) // 2022-02-15 12:12:12
    缩写模式
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'y')) // 2023-02-22 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'M')) // 2022-04-22 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'd')) // 2022-02-23 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'H')) // 2022-02-22 13:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'm')) // 2022-02-22 12:13:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 's')) // 2022-02-22 12:12:13
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(2000, 'ms')) // 2022-02-22 12:12:14
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'Q')) // 2022-06-22 12:12:12
    console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'w')) // 2022-03-01 12:12:12

getDateDiff

  • 功能:获取日期相减后的信息, 计算方法: 实例化日期 — 传入日期【参数dateTime】

  • 参数:(dateTime)

    format参数传值参考格式化数据方法

    参数名 参数类型 参数默认值 参数说明
    dateTime String|Number 系统当前日期 运算日期
  • 返回值:格式化日期

  • 返回数据类型:Object/String[两个日期相同]

  • 用法

    情景1: 比较日期相同

    console.log(new Wdate().getDateDiff()) // 两个日期相同

    情景2:实例化日期在传入日期之前

    console.log(new Wdate('2022-03-03 12:00:00').getDateDiff('2022-03-04 03:30:30'))
    // 打印结果
    {
      day: 0, // 总天数
      hours: 15,
      hoursCount: 15, // 总小时
      minutes: 30,
      seconds: 30,
      timestamp: -55830000 // 结果为负数
    }

    情景3:实例化日期在传入日期之后

    console.log(new Wdate('2022-03-03 12:00:00').getDateDiff('2022-03-02 03:30:30'))
    {
      day: 1,
      hours: 8,
      hoursCount: 32,
      minutes: 29,
      seconds: 30,
      timestamp: 116970000
    }

getDiffDay

  • 功能:获取日期相减后自然天数(日期计算,不考虑时间), 计算方法: 实例化日期 — 传入日期【参数dateTime】

  • 参数:(dateTime)

    format参数传值参考格式化数据方法

    参数名 参数类型 参数默认值 参数说明
    dateTime String|Number 系统当前日期 运算日期
  • 返回值:格式化日期

  • 返回数据类型:Number

  • 用法

    情景1: 同一天

    console.log(new Wdate().getDiffDay()) // 0

    情景2:实例化日期在传入日期之前

    console.log(new Wdate('2022-03-03 12:00:00').getDiffDay('2022-03-04 03:30:30')) // -1

    情景2:实例化日期在传入日期之后

    console.log(new Wdate('2022-03-03 12:00:00').getDiffDay('2022-03-02 03:30:30')) // 1

3、格式化数据方法

getTimeFrame

  • 功能:根据时间段返回特定文案

  • 参数:(hour, text)

    hour和text数字长度必须一致,text定义时间范围的下标对应hour数字下标里面展示的内容

    参数名 参数类型 参数默认值 参数说明
    hour Array ['AM', 'PM'] 定义显示文案
    text Array [{start: 0, end: 12},{start: 12, end: 24}] 定义时间段范围
  • 返回值:AM,PM ,自定义文案

  • 返回数据类型:String

  • 用法

    const newData = new Wdate() // 当前日期2022年1月27日 13:05:03
    // 默认值
    text = ['AM', 'PM']
    hour = [{start: 0, end: 12},{start: 12, end: 24}
    console.log(newData.getTimeFrame()) // PM   

    自定义指定时间显示指定文案

    const newData = new Wdate()
    
    const text = ['凌晨', '早上', '上午', '中午', '下午', '晚上', '深夜']
    const hour = [
      { start: 0, end: 4 },
      { start: 4, end: 8 },
      { start: 8, end: 12 },
      { start: 12, end: 14 },
      { start: 14, end: 18 },
      { start: 18, end: 22 },
      { start: 22, end: 24 },
    ]
    console.log(newData.getTimeFrame(text, hour))

getAllDate

  • 功能:格式化日期

  • 参数:(format,isFillZero)

    参数名 参数类型 参数默认值 参数说明
    format String yy-MM-dd 定义日期格式
    isFillZero Boolean true 是否补0
  • 返回值:年-月-日、自定义格式

  • 返回数据类型String

  • 用法

    const newData = new Wdate()
    console.log(newData.getAllDate('yy年MM月dd日')) // 2022年01月27日
    console.log(newData.getAllDate('yy年MM月dd日',false)) // 2022年1月27日
    console.log(newData.getAllDate('MM月dd日')) //01月27日
    console.log(newData.getAllDate('yy年MM月')) //2022年01月

getAllTime

  • 功能:格式化时间

  • 参数:(format,isFillZero)

    参数名 参数类型 参数默认值 参数说明
    format String HH-mm-ss 定义时间格式
    isFillZero Boolean true 是否补0
  • 返回值:时:分:秒、自定义格式

  • 返回数据类型String

  • 用法

    const newData = new Wdate()
    console.log(newData.getAllTime('HH:mm:ss')) // 14:12:02
    console.log(newData.getAllTime('hh:mm:ss')) // 02:12:02
    console.log(newData.getAllTime('mm:ss')) // 12:02
    console.log(newData.getAllTime('HH:mm')) // 14:12

getFormat

  • 功能:格式化日期时间

  • 参数:(format,isFillZero)

    参数名 参数类型 参数默认值 参数说明
    format String yy-MM-dd HH:mm:ss 定义日期时间格式
    isFillZero Boolean true 是否补0
  • 返回值:年-月-日 时:分:秒、自定义格式

  • 返回数据类型String

  • 用法

    const newData = new Wdate()
    console.log(newData.getFormat()) // 2022-01-27 14:57:51 默认格式
    console.log(newData.getFormat('yy年')) // 2022年
    console.log(newData.getFormat('yy年MM月')) // 2022年01月
    console.log(newData.getFormat('yy年MM月dd日'))  // 2022年01月27日
    console.log(newData.getFormat('yy年MM月dd日', false))  //2022年1月27日 
    console.log(newData.getFormat('MM月yy年')) //01月2022年
    console.log(newData.getFormat('yy.MM.dd'))  //2022.01.27
    console.log(newData.getFormat('yy.MM.dd hh.mm.ss'))  // 2022.01.27 03:03:46
    console.log(newData.getFormat('yy.MM.dd hh时mm分ss秒 星期ww'))  // 2022.01.27 04时07分41秒 星期四
    console.log(newData.getFormat('yy.MM.dd hh时mm分ss秒 星期ww', false)) // 2022.1.27 4时7分41秒 星期四
    console.log(newData.getFormat('hh时mm分ss秒 星期ww'))  // 04时08分47秒 星期四
    console.log(newData.getFormat('星期ww hh时mm分ss秒')) // 星期四 04时08分47秒
    console.log(newData.getFormat('今天是dd日, HH时mm分'))  //今天是27日, 16时10分

getFormatOne

  • 功能:格式化日期时间, 7天前日期显示日期时间格式、当天显示时间格式、7天内显示星期格式

  • 参数:(format,isFillZero)

    参数名 参数类型 参数默认值 参数说明
    format Object {
    sevenIn: '星期ww',
    sevenOut: 'yy-MM-dd HH:mm:ss',
    today: '今天是HH:ss:mm'
    }
    定义7天前日期时间格式
    isFillZero Boolean true 是否补0

    format参数说明:参数说明参考format格式化日期字符说明

    {
      sevenIn: '星期ww',  // 7天内时间显示格式
      sevenOut: 'yy-MM-dd HH:mm:ss', // 七天以外显示格式
      today: '今天是HH:ss:mm' // 当天显示格式
    }
  • 返回值:年-月-日 时:分:秒、星期一-星期日、时:分:秒/ 自定义格式

  • 返回数据类型String

  • 用法

    const newData = new Wdate()
    console.log(newData.getFormatOne()) // 15:26:36
    console.log(newData.getFormatOne({today: '今天是HH:ss:mm'})) // 今天是15:36:26
    
    const newData = new Wdate('2022-02-28 12:12:00')
    console.log(newData.getFormatOne({sevenIn: 'yy年MM月dd日'})) // 2022年02月28日
    
    const newData = new Wdate('2022-02-22 12:12:00')
    console.log(newData.getFormatOne({sevenOut: 'yy年MM月dd日 HH点mm分ss秒 周ww'})) // 2022年02月22日 12点12分00秒 周二

getFuture

  • 功能:根据倒计时时间戳获取天、时、分、秒、时间戳

  • 参数

    参数名 参数类型 参数默认值 参数说明
    timestamp String 无/未传值用实例化日期时间戳减去系统日期时间戳 倒计时时间戳
  • 返回值

    { 
    	day: 2, // 天
    	hours: 23, // 小时
        hoursCount: 71 总小时
    	minutes: 57, // 分钟
    	seconds: 2, // 秒
    	timestamp: 259022746
    }
    
  • 返回数据类型Object

  • 用法

    主要用于做倒计时使用,根据倒计时的时间戳,格式化显示天、时、分、秒

    const newData = new Wdate()
    
    console.log(newData.getFuture(250000000))
    打印结果
    { day: 2, hours: 69, minutes: 26, seconds: 40, timestamp: 250000000 }
    
    不传参数,用实例化日期和当前日期相减计算取绝对值计算返回
    const newData = new Wdate('2022-02-28 17:01:00') // 时间戳13位
    
    console.log(newData.getFuture()) 
    console.log(new Date())
    {
      day: 2,
      hours: 23,
      hoursCount: 71,
      minutes: 57,
      seconds: 2,
      timestamp: 259022746
    }
    2022-02-25T09:03:57.262Z

4、农历日期方法

getLunarZodiac

  • 功能:获取农历生肖

  • 参数:无

  • 返回值:12生肖鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪

  • 返回数据类型String

  • 用法

    const newData = new Wdate('2022-02-27 14:12:02')
    console.log(newData.getLunarZodiac()) // 虎
    
    const newData = new Wdate('2022-01-27 14:12:02') // 系统当前时间
    console.log(newData.getLunarZodiac()) // 牛

    注意:大致根据农历正月初一以后进行判断,精确判断应该根据农历第一个节气

getLunar

  • 功能:返回农历日期数字/汉字/干支/润月信息【返回1901-2099年农历日期信息】

  • 参数:无

  • 返回值

    {
      lunarYear: 2021, // 农历年
      lunarMonth: 12, // 农历月
      lunarDay: 25, // 农历日
      lunarYearCN: '二零二一', // 汉字表示农历年
      lunarMonthCN: '腊月', // 汉字表示农历月
      lunarDayCN: '廿十五', // 汉字表示农历日
      lunarLeapMonth: 0, // 当年润月份,0表示无闰月
      lunarIsLeapMonth: false, // 当年月是否是闰月
      lunarZodiac: '牛', // 农历生肖
      ganZhiYear: '辛丑', // 干支表示年
      ganZhiMonth: '辛丑', // 干支表示月
      ganZhiDay: '庚辰', // 干支表示日
      lunarHourCn: '未时' // 地址表示时辰
    }
    
  • 返回数据类型Object

  • 用法

    const newData = new Wdate() // 系统当前时间
    
    console.log(newData.getLunar())
    {
      lunarYear: 2022,
      lunarMonth: 1,
      lunarDay: 23,
      lunarYearCN: '二零二二',
      lunarMonthCN: '正月',
      lunarLeapMonth: 0,
      lunarIsLeapMonth: false,
      lunarDayCN: '廿十三',
      lunarZodiac: '虎',
      ganZhiYear: '壬寅',
      ganZhiMonth: '壬寅',
      ganZhiDay: '丁未',
      lunarHourCn: '巳时'
    }

5、日期判断方法

isValid

  • 功能:检验日期是否合法

  • 参数:(date, res)

    参数名 参数类型 参数默认值 参数说明
    date* Any 检验的日期
    res Boolean false 结果为true, 返回new Date() 实例化的日期
  • 返回值:true/false/{ date: 2022-02-25T00:00:00.000Z, timestamp: 1645747200000, res: true }

  • 返回数据类型Boolean|Object

  • 用法

    console.log(newData.isValid('2022-02-25', true)) // { date: 2022-02-25T00:00:00.000Z, timestamp: 1645747200000, res: true }
    console.log(newData.isValid('2022-02-25')) // ture
    console.log(newData.isValid('2022-02-aa')) // falseisLeapYear

isLeapYear

  • 功能:判断是否是闰年

  • 参数:无

  • 返回值:true/false

  • 返回数据类型Boolean

  • 用法

    const newData = new Wdate()
    console.log(newData.isLeapYear()) // false
    
    const newData = new Wdate('2008-01-01 10:02:02')
    console.log(newData.isLeapYear()) // true

isBefore

  • 功能:判断传入日期是否在指定日期之前

  • 参数:(compareDate)

    参数名 参数类型 参数默认值 参数说明
    compareDate* String 比较的日期
  • 返回值:true/false

  • 返回数据类型Boolean

  • 用法

    const newData = new Wdate('2022-02-14 12:20:20') // 指定日期
    
    console.log(newData.isBefore('2022-02-14 12:20:19')) // true
    console.log(newData.isBefore('2022-02-14 12:20:22')) // false

isSame

  • 功能:判断传入日期是否与指定日期相同

  • 参数:(compareDate)

    参数名 参数类型 参数默认值 参数说明
    compareDate* String 比较的日期
  • 返回值:true/false

  • 返回数据类型Boolean

  • 用法

    const newData = new Wdate('2022-02-14 12:20:20') // 指定日期
    
    console.log(newData.isSame('2022-02-14 12:20:20')) // 传入日期  true
    console.log(newData.isSame('2022-02-14 12:20:22')) // 传入日期  false

isAfter

  • 功能:判断传入日期是否与指定日期之后

  • 参数:(compareDate)

    参数名 参数类型 参数默认值 参数说明
    compareDate* String 比较的日期
  • 返回值:true/false

  • 返回数据类型Boolean

  • 用法

    const newData = new Wdate('2022-02-14 12:20:20') // 指定日期
    
    console.log(newData.isAfter('2022-02-14 12:20:18')) // false
    console.log(newData.isAfter('2022-02-14 12:20:21')) // ture

isBetween

  • 功能:判断指定日期是否在传入日期范围(大于等于开始时间,小于等于结束时间)

  • 参数:(startTime, endTime)

    日期支持格式和实例化参数日期格式一样

    参数名 参数类型 参数默认值 参数说明
    startTime* String|Number 范围开始时间
    endTime* String 范围结束时间
  • 返回值:true/false

  • 返回数据类型Boolean

  • 用法

    console.log(new Wdate('2022-03-04 15:36:00').isBetween('2022-03-04 15:36:01', '2022-03-26 12:12:00')) // false
    console.log(new Wdate('2022-03-04 15:36:00').isBetween('2022-03-03 15:36:01', '2022-03-26 12:12:00')) // true
    console.log(new Wdate('2022-03-04 15:36:00').isBetween(1646379361000, 1648267920000)) // false
    console.log(new Wdate('2022-03-04 15:36:00').isBetween(1646292961000, 1648267920000)) // true

isThisYear

  • 功能:判断是否当年

  • 参数:无

  • 返回值:true/false

  • 返回数据类型Boolean

  • 用法

    const newData = new Wdate('2022-02-24 17:09:00') 
    console.log(newData.isThisYear()) // ture
    
    const newData = new Wdate('2023-02-24 17:09:00') 
    console.log(newData.isThisYear()) // false

isThisMonth

  • 功能:判断是否当月

  • 参数:无

  • 返回值:true/false

  • 返回数据类型Boolean

  • 用法

    const newData = new Wdate('2023-02-24 17:09:00') 
    console.log(newData.isThisMonth()) // false
    
    const newData = new Wdate('2022-02-24 17:09:00') 
    console.log(newData.isThisMonth()) // true

isThisWeek

  • 功能:判断是否本周

  • 参数:无

  • 返回值:true/false

  • 返回数据类型Boolean

  • 用法

    const newData = new Wdate('2022-02-24 17:09:00') 
    console.log(newData.isThisWeek()) // true
    
    const newData = new Wdate('2022-02-28 17:09:00') 
    console.log(newData.isThisWeek()) // false

isToday

  • 功能:判断是否是当天

  • 参数:无

  • 返回值:true/false

  • 返回数据类型Boolean

  • 用法

    const newData = new Wdate('2022-02-28 17:09:00') 
    console.log(newData.isToday()) // false
    
    const newData = new Wdate('2022-02-25 17:09:00') 
    console.log(newData.isToday()) // ture

isWorkDay

  • 功能:判断是否是工作日、周末, 不考虑法定假日

  • 参数:无

  • 返回值:true/false

  • 返回数据类型Boolean

  • 用法

    const newData = new Wdate('2022-02-25 17:09:00') 
    console.log(newData.isWorkDay()) // true
    
    const newData = new Wdate('2022-02-26 17:09:00') 
    console.log(newData.isWorkDay()) // false

6、日期转换方法

toString

  • 功能:序列化为 ISO 8601 格式的字符串

  • 参数:无

  • 返回值:序列化格式的字符串

  • 返回数据类型String

  • 用法

    console.log(new Wdate(1646705779112).toString()) // Tue Mar 08 2022 10:16:19 GMT+0800 (新加坡标准时间)

toArray

  • 功能:返回包含时间信息的 Array

  • 参数:(isFillZero)

    参数名 参数类型 参数默认值 参数说明
    isFillZero Boolean false 是否补0
  • 返回值:时间信息的数组['年',‘月’,‘日’,‘时’,‘分’,‘秒’,‘毫秒’]

  • 返回数据类型Array

  • 用法

    // 2022-03-08 10:16:19
    console.log(new Wdate(1646705779112).toArray()) // [2022, 3, 8, 10, 16, 19, 112]
    console.log(new Wdate(1646705779112).toArray(true)) // [ '2022', '03', '08', '10','16' ,'19', '112']

toJSON

  • 功能:序列化为 ISO 8601 格式的字符串

  • 参数:无

  • 返回值:序列化格式的字符串

  • 返回数据类型String

  • 用法

    console.log(new Wdate().toJSON()) // 2022-03-08T02:11:18.764Z

toObject

  • 功能:返回包含时间信息的 Object

  • 参数:(isFillZero)

    参数名 参数类型 参数默认值 参数说明
    isFillZero Boolean false 是否补0
  • 返回值

    {
      year: 2022, // 年
      month: 1, // 月
      date: 27, // 日
      hours: 14, // 时
      minutes: 46, // 分
      seconds: 29, // 秒
      timestamp: 1643265989971 // 时间戳毫秒
    }
  • 返回数据类型Object

  • 用法

    console.log(new Wdate(1646705779112).toObject(true)) // 补零,所有值返回String
    打印结果:
    {
      year: '2022',
      month: '03',
      date: '08',
      hours: '10',
      minutes: '16',
      seconds: '19',
      timestamp: '1646705779112'
    }
    console.log(new Wdate(1646705779112).toObject()) // 默认不补零,所有值返回类型Number
    {
      year: 2022,
      month: 3,
      date: 8,
      hours: 10,
      minutes: 16,
      seconds: 19,
      timestamp: 1646705779112
    }

7、设置方法

以下所有set开头方法支持链式操作其他方法, 如果size传参错误,会抛出错误异常throw new Error('size参数错误');

例:

console.log(new Wdate('2022-03-08 12:12:12').set(2,'d').getFormat()) // 2022-03-02 12:12:12
console.log(new Wdate('2022-03-08 12:12:12').set(2020,'y').getFormat('将2022年修改为:yy')) // 将2022年修改为:2020
console.log(new Wdate('2022-03-08 12:12:12').set(2020,'y').getYear()) // 2022
console.log(new Wdate('2022-03-08 12:12:12').setYear(2020).getYear()) // 2022

setYear

  • 功能:设置日期的年份

  • 参数:(year)

    参数名 参数类型 参数默认值 参数说明
    year Number 0 年份(年份参数只能在1970-2200年之间)
  • 用法

    console.log(new Wdate('2022-03-08 12:12:12').setYear(2).getYear()) // 抛出异常throw new Error('年份参数只能在1970-2200年之间')
    const newData = new Wdate('2022-03-08 12:12:12')
    newData.setYear(2020)
    console.log(newData.getYear()) // 2020
    链式操作:
    console.log(newData.setYear(2020).getYear()) // 2020

setMonth

  • 功能:设置日期的月份

  • 参数:(month)

    参数名 参数类型 参数默认值 参数说明
    month Number 0 月份期望值是 1-12,但允许其他值:
    0 将导致上一年的最后一个月
    13 将导致明年的第1个月
  • 用法

    console.log(new Wdate('2022-03-08 12:12:12').setMonth(2).getFormat()) // 2022-02-08 12:12:12
    console.log(new Wdate('2022-03-08 12:12:12').setMonth(-1).getFormat()) // 2021-11-08 12:12:12 上一年的第二个月
    console.log(new Wdate('2022-03-08 12:12:12').setMonth(13).getFormat()) // 2023-01-08 12:12:12 下一年的第一个月

setDate

  • 功能:设置日期中月的某一天

  • 参数:(day)

    参数名 参数类型 参数默认值 参数说明
    day Number 0 必需。整数,表示月中的某一天。
    预期值是 1-31,但允许其他值
    0 将导致上个月的最后一天
    -1 将导致上个月的最后一天的前一天
    如果一个月有 31 天:
    32 将导致下个月的第一天
    如果一个月有 30 天:
    32 将导致下个月的第二天
  • 用法

    console.log(new Wdate('2022-03-08 12:12:12').setDate(20).getFormat()) // 2022-03-20 12:12:12
    // 0 将导致上个月的最后一天
    console.log(new Wdate('2022-03-08 12:12:12').setDate(0).getFormat()) // 2022-02-28 12:12:12
    // -1 将导致上个月的最后一天的前一天
    console.log(new Wdate('2022-03-08 12:12:12').setDate(-1).getFormat()) // 2022-02-27 12:12:12
    // 如果一个月有 31 天:32 将导致下个月的第一天
    console.log(new Wdate('2022-03-08 12:12:12').setDate(32).getFormat()) // 2022-04-01 12:12:12
    // 如果一个月有 30 天32 将导致下个月的第二天
    console.log(new Wdate('2022-04-08 12:12:12').setDate(32).getFormat()) // 2022-05-02 12:12:12

setHours

  • 功能:设置日期中的小时

  • 参数:(hour)

    参数名 参数类型 参数默认值 参数说明
    hour Number 0 表示小时的整数。
    期望值是 0-23,但允许其他值:
    -1 将导致前一天的最后一个小时
    24 将导致第二天的第一个小时
  • 用法

    console.log(new Wdate('2022-04-08 12:12:12').setHours(13).getFormat()) // 2022-04-08 13:12:12
    console.log(new Wdate('2022-04-08 12:12:12').setHours(0).getFormat()) // 2022-04-08 00:12:12
    // -1 将导致前一天的最后一个小时
    console.log(new Wdate('2022-04-08 12:12:12').setHours(-1).getFormat()) // 2022-04-07 23:12:12
    // 24 将导致第二天的第一个小时
    console.log(new Wdate('2022-04-08 12:12:12').setHours(24).getFormat()) // 2022-04-09 00:12:12

setMinutes

  • 功能:设置日期中的分钟

  • 参数:(min)

    参数名 参数类型 参数默认值 参数说明
    min Number 0 表示分钟的整数
    期望值是 0-59,但允许其他值
    -1 将导致前一小时的最后一分钟
    60 将导致下一小时的第一分钟
  • 用法

    console.log(new Wdate('2022-04-08 12:12:12').setMinutes(25).getFormat()) // 2022-04-08 12:25:12
    console.log(new Wdate('2022-04-08 12:12:12').setMinutes(0).getFormat()) // 2022-04-08 12:00:12
    // -1 将导致前一小时的最后一分钟
    console.log(new Wdate('2022-04-08 12:12:12').setMinutes(-1).getFormat()) // 2022-04-08 11:59:12
    // 60 将导致下一小时的第一分钟
    console.log(new Wdate('2022-04-08 12:12:12').setMinutes(60).getFormat()) // 2022-04-08 13:00:12

setSeconds

  • 功能:设置日期中的秒

  • 参数:(sec)

    参数名 参数类型 参数默认值 参数说明
    sec Number 0 表示秒钟的整数
    预期值为 0-59,但允许其他值:
    -1 将导致前一分钟的最后一秒
    60 将导致下一分钟的第一秒
  • 用法

    console.log(new Wdate('2022-04-08 12:12:12').setSeconds(25).getFormat()) // 2022-04-08 12:12:25
    console.log(new Wdate('2022-04-08 12:12:12').setSeconds(0).getFormat()) // 2022-04-08 12:12:00
    // -1 将导致前一分钟的最后一秒
    console.log(new Wdate('2022-04-08 12:12:12').setSeconds(-1).getFormat()) // 2022-04-08 12:11:59
    // 60 将导致下一分钟的第一秒
    console.log(new Wdate('2022-04-08 12:12:12').setSeconds(60).getFormat()) // 2022-04-08 12:13:00

setMilliseconds

  • 功能:设置日期中的毫秒

  • 参数:(millisec)

    参数名 参数类型 参数默认值 参数说明
    millisec Number 0 表示毫秒的整数
    预期值为 0-999,但允许其他值:
    -1 将导致前一秒的最后一毫秒
    1000 将导致下一秒的第一毫秒
  • 用法

    console.log(new Wdate('2022-04-08 12:12:12').setMilliseconds(25).toJSON()) // 2022-04-08T04:12:12.025Z
    console.log(new Wdate('2022-04-08 12:12:12').setMilliseconds(0).toJSON()) // 2022-04-08T04:12:12.000Z
    console.log(new Wdate('2022-04-08 12:12:12').setMilliseconds(-1).toJSON()) // 2022-04-08T04:12:11.999Z
    console.log(new Wdate('2022-04-08 12:12:12').setMilliseconds(1000).toJSON()) // 2022-04-08T04:12:13.000Z

set

  • 功能:设置指定年月日时分秒毫秒

  • 参数:(size, unit)

    参数名 参数类型 参数默认值 参数说明
    size* Number 设置的数值
    unit String date 默认设置日 单位

    unit参数类型说明:

    ID 参数值 缩写 说明
    1 year y
    2 month M(大写)
    3 date d
    4 hour H(大写) 小时
    5 minute m 分钟
    6 second s 秒钟
    7 millisecond ms 毫秒
  • 用法

    const dateTime = "2022-04-04 12:12:12"
    console.log(new Wdate(dateTime).set(2).getFormat()) // 2022-04-02 12:12:12
    console.log(new Wdate(dateTime).set(2020, 'year').getFormat()) //2020-04-04 12:12:12
    console.log(new Wdate(dateTime).set(11, 'month').getFormat()) // 2022-11-04 12:12:12
    console.log(new Wdate(dateTime).set(11, 'date').getFormat()) // 2022-04-11 12:12:12
    console.log(new Wdate(dateTime).set(11, 'hour').getFormat()) // 2022-04-04 11:12:12
    console.log(new Wdate(dateTime).set(11, 'minute').getFormat()) // 2022-04-04 12:11:12
    console.log(new Wdate(dateTime).set(11, 'second').getFormat()) // 2022-04-04 12:12:11
    console.log(new Wdate(dateTime).set(11, 'millisecond').toJSON()) // 2022-04-04T04:12:12.011Z

    unit缩写模式

    const dateTime = "2022-04-04 12:12:12"
    console.log(new Wdate(dateTime).set(2).getFormat())
    console.log(new Wdate(dateTime).set(2020, 'y').getFormat())
    console.log(new Wdate(dateTime).set(11, 'M').getFormat())
    console.log(new Wdate(dateTime).set(11, 'd').getFormat())
    console.log(new Wdate(dateTime).set(11, 'H').getFormat())
    console.log(new Wdate(dateTime).set(11, 'm').getFormat())
    console.log(new Wdate(dateTime).set(11, 's').getFormat())
    console.log(new Wdate(dateTime).set(11, 'ms').toJSON())

setStartOf

  • 功能:设置时间为指定单位开始

  • 参数:(unit)

    参数名 参数类型 参数默认值 参数说明
    unit String year 单位

    unit参数类型说明:

    ID 参数值 缩写 说明
    1 year y 当年年1月1日上午 00:00
    2 month M(大写) 当月月1日上午 00:00
    3 date d 当天 00:00
    4 hour H(大写) 当前时间,0 分、0 秒、0 毫秒
    5 minute m 当前时间,0 秒、0 毫秒
    6 second s 当前时间,0 毫秒
    8 quarter Q(大写) 当季度第一个月1日上午 00:00
    9 week w 当周的第一天上午 00:00【星期日为第一天】
    10 weekMonday wm 当周的第一天上午 00:00【星期一为第一天】
  • 用法

    const dateTime =1615004552333 // "2021-03-06 12:22:32 333"
    console.log(new Wdate(dateTime).getFormat('yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setStartOf('y').getFormat('年:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setStartOf('M').getFormat('月:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setStartOf('d').getFormat('日:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setStartOf('Q').getFormat('季:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setStartOf('H').getFormat('时:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setStartOf('m').getFormat('分:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setStartOf('s').getFormat('秒:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setStartOf('w').getFormat('周[周日第一天]:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setStartOf('wm').getFormat('周[周一第一天]:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    // 2021-03-06 12:22:32 毫秒333 星期六 案例时间
    // 年:2021-01-01 00:00:00 毫秒0 星期五
    // 月:2021-03-01 00:00:00 毫秒0 星期一
    // 日:2021-03-06 00:00:00 毫秒0 星期六
    // 季:2021-01-01 00:00:00 毫秒0 星期五
    // 时:2021-03-06 12:00:00 毫秒0 星期六
    // 分:2021-03-06 12:22:00 毫秒0 星期六
    // 秒:2021-03-06 12:22:32 毫秒0 星期六
    // 周[周日第一天]:2021-02-28 00:00:00 毫秒0 星期日
    // 周[周一第一天]:2021-03-01 00:00:00 毫秒0 星期一

setEndOf

  • 功能:设置时间为指定单位末尾

  • 参数:(unit)

    参数名 参数类型 参数默认值 参数说明
    unit String year 单位

    unit参数类型说明:

    ID 参数值 缩写 说明
    1 year y 当年年12月31日下午 23:59:59
    2 month M(大写) 当月最后一天 23:59:59
    3 date d 当天 23:59:59
    4 hour H(大写) 当前时间,59 分、59 秒、999 毫秒
    5 minute m 当前时间,59秒、999 毫秒
    6 second s 当前时间,999毫秒
    8 quarter Q(大写) 当季度第三个月最后一天日下午23:59:59
    9 week w 当周最后一天下午23:59:59【星期日为第一天】
    10 weekMonday wm 当周最后一天下午23:59:59【星期一为第一天】
  • 用法

    const dateTime = 1646819487333 // "2022-03-06 12:22:32 333"
    console.log(new Wdate(dateTime).getFormat('yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setEndOf('y').getFormat('年:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setEndOf('M').getFormat('月:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setEndOf('d').getFormat('日:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setEndOf('Q').getFormat('季:yy-MM-dd HH:mm:ss 毫秒ms 星期wwQ'))
    console.log(new Wdate(dateTime).setEndOf('H').getFormat('时:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setEndOf('m').getFormat('分:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setEndOf('s').getFormat('秒:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setEndOf('w').getFormat('周【周六为最后一天】:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    console.log(new Wdate(dateTime).setEndOf('wm').getFormat('周【周日为最后一天】:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
    
    // 2022-03-09 17:51:27 毫秒333 星期三
    // 年:2022-12-31 23:59:59 毫秒999 星期六
    // 月:2022-03-31 23:59:59 毫秒999 星期四
    // 日:2022-03-09 23:59:59 毫秒999 星期三
    // 季:2022-03-31 23:59:59 毫秒999 星期四Q
    // 时:2022-03-09 17:59:59 毫秒999 星期三
    // 分:2022-03-09 17:51:59 毫秒999 星期三
    // 秒:2022-03-09 17:51:27 毫秒999 星期三
    // 周【周六为最后一天】:2022-03-12 23:59:59 毫秒999 星期六
    // 周【周日为最后一天】:2022-03-13 23:59:59 毫秒999 星期日

四、版本更新记录

V1.0.4

​ 添加了以下方法

​ isAfter() 判断日期是否在指定日期之前

​ isSame()判断日期是否等于指定日期

​ isBefore()判断日期是否在指定日期之后

​ isValid() 判断传入日期是否合法

​ getQuarter() 获取季度

V1.0.5

添加了以下方法

​ getLunarZodiac() 获取当年生肖

​ getLunar() 获取农历日期信息

​ getAge() 获取年龄

​ getCconstellation() 获取星座

V1.0.6

​ 清楚日志console.log

​ 修改说明文档格式

添加以下方法

​ isToday() 判断是否是当天

​ isThisYear() 判断是否是当年

​ isThisMonth() 判断是否当月

​ isThisWeek() 判断是否本周

​ isWorkday() 判断是否工作日/是否周末

​ getDayOfYear() 获取当天是当年的第几天

V1.0.7

​ 说明文档排版优化

​ 修改getFormatOne传参

​ 代码压缩

V1.0.8

​ 修改方法名称getAllDateTime 为 getFormat ​ 添加以下方法

​ isBetween() 判断时间是否在指定时间段

​ get() 返回年月日时分秒毫秒【根据参数返回】

​ getAdd() 返回日期加减天数的新日期

​ getDateDiff() 日期相差信息

​ getDiffDay() 日期相差自然天数

​ toString() 返回包含时间信息的 string

​ toArray() 返回将日期转换数组

​ toJSON() 返回序列化为 ISO 8601 格式的字符串

​ toObject() 返回包含时间信息的 Object

​ setYear() 设置日期的年份

​ setMonth() 设置日期的月份

​ setDate() 设置日期中月的某一天

​ setHours() 设置日期的小时

​ setMinutes() 设置日期的分钟数

​ setSeconds() 设置日期的秒数

​ setMilliseconds() 设置日期的毫秒数

​ set() 设置年月日时分秒毫秒【根据参数设置】

Package Sidebar

Install

npm i wh-date

Weekly Downloads

8

Version

1.0.8

License

ISC

Unpacked Size

78.6 kB

Total Files

6

Last publish

Collaborators

  • wanghuilife