❝很就没有写文章了,但是每天都逛掘金,默默的点赞大佬,然后默默的流下了没有技术的眼泪,庆幸的是,最近小编重启了18年沉浸已久的
❞date
项目,其实就是小编两年前无聊弄的一个日期时间工具类,尴尬,千疮百孔, 最近修修补补,总算差不多了,取名Rdate
,还写了个文档,项目地址:github.com/shufei021/d…,如果觉得可以点个star
,谢谢! 话不多说,上货!
引入rdate.js 就干活
const date = new Rdate()
以我最近项目中常需求的功能开始:
- 日期显示格式:
08月30日(周日)
- 日期显示格式:
08/28 19:49(星期五)
date.format('2020-8-30','MM月dd日(W)')//08月30日(周日)
date.format('2020-08-28 19:49','MM/dd hh:mm(w)')//08/28 19:49(星期五)
format
❝日期格式化方法,也是
❞Rdate
的核心方法,主要功能是 : 格式化 当前时间 | 指定时间
格式化当前时间: 无参时返回格式为默认的yyyy-MM-dd hh:mm:ss
date.format()
格式化当前时间: 使用自定义格式
date.format('yyyy-MM-dd')// 2020-08-30 (测试时间:2020-08-30)
格式化指定时间: 第一个参数为日期,第二个参数为格式即可
date.format('2020-1-1','yyyy-MM-dd hh:mm:ss')//2020-01-01 00:00:00
星期/时辰
❝连续的
❞w
/W
/t
会被替换成对应的星期/周/时辰
date.format('当前是yyyy年MM月dd日 hh时mm分ss秒 w t')
模板
❝有时候难免需要使用 特殊的字母,例如:
❞yyyy
/YYYY
/MM
/dd
/HH
/hh
/ss
/w
/W
/t
等,为此提供模板字符[]
,特殊字符只需放入其中即可。
date.format('[YYYY]')// YYYY
日期时间常见功能
本周第一天
date.getCurWeekFirstDay()
本周最后一天
date.getCurWeekLastDay()
获取当前时间所在月有多少天
date.getMonthDays()
获取指定时间所在月有多少天
指定时间可以是 {String | Number | Date}
,例如 2020/8/8 | 1598792416228 | new Date()
date.getMonthDays(指定时间)
获取当前时间的前 n 天 或 后 n 天 的日期
date.getGapDate(-1)// 昨天
date.getGapDate(-2)// 昨前天
date.getGapDate(1) // 明天
date.getGapDate() // 今天
获取指定时间的前 n 天 或 后 n 天 的日期
date.getGapDate(1,'2020-02-27')// 2020-02-28
date.getGapDate(2,'2020-02-27')// 2020-02-29
date.getGapDate(3,'2020-02-27')// 2020-03-01
date.getGapDate(-1,'2020-02-27')// 2020-02-26
date.getGapDate(-2,'2020-02-27')// 2020-02-25
date.getGapDate(-3,'2020-02-27')// 2020-02-24
// 有三个参数时候,第一个参数 `n`,第二个参数 给定日期 `dt`,第三个参数格式 `ft`
date.getGapDate(2,new Date(),'yyyy/MM/dd HH:mm') // "2020/08/31 18:52" (测试时间:2020/8/29)
date.getGapDate(2,'2020-02-27','yyyy/MM/dd HH:mm') // "2020/02/29 00:00"
date.getGapDate(2,'2020-02-27','yyyy/MM/dd HH:mm w')// "2020/02/29 00:00 星期六"
获取本周首末日期,前推后推 n 周的首末日期
/**
* {Number } n
* {String | Number | Date}
* dt{String} ft
*/
// 无参 :获取的是当前时间(默认格式年月日)
date.getGapWeek()//{first: "2020-08-24", last: "2020-08-30"} (测试时间:2020/8/29)
//----------------------------------------------------------
// 只有第一个参数时候,以当前时间为准
date.getGapWeek(1)// {first: "2020-08-31", last: "2020-09-06"} (测试时间:2020/8/29)
// 只有第一个参数时候,以当前时间为准
date.getGapWeek(2)// {first: "2020-09-07", last: "2020-09-13"} (测试时间:2020/8/29)
// 只有第一个参数时候,以当前时间为准
date.getGapWeek(-1)// {first: "2020-08-17", last: "2020-08-23"} (测试时间:2020/8/29)
// 只有第一个参数时候,以当前时间为准
date.getGapWeek(-2)// {first: "2020-08-10", last: "2020-08-16"} (测试时间:2020/8/29)
//-------------------------------------------------------------
// 只有两个参数时候,以给定的`dt`时间为准
date.getGapWeek(1,'2020-02-27')// {first: "2020-03-02", last: "2020-03-08"}
date.getGapWeek(2,'2020-02-27')// {first: "2020-03-09", last: "2020-03-15"}
date.getGapWeek(3,'2020-02-27')// {first: "2020-03-16", last: "2020-03-22"}
date.getGapWeek(-1,'2020-02-27')// {first: "2020-02-17", last: "2020-02-23"}
date.getGapWeek(-2,'2020-02-27')// {first: "2020-02-10", last: "2020-02-16"}
date.getGapWeek(-3,'2020-02-27')// {first: "2020-02-03", last: "2020-02-09"}
//-------------------------------------------------------------
// 有三个参数时候,第一个参数 `n`,第二个参数 给定日期 `dt`,第三个参数格式 `ft`
date.getGapWeek(2,new Date(),'MM/dd') // {first: "09/07", last: "09/13"} (测试时间:2020/8/29)
date.getGapWeek(-2,'2020-02-27','yyyy/MM/dd') // {first: "2020/02/10", last: "2020/02/16"}
date.getGapWeek(-2,'2020-02-27','yyyy/MM/dd W')
// {first: "2020/02/10 周一", last: "2020/02/16 周日"}
date.getGapWeek(-2,'2020-02-27','yyyy/MM/dd w')
// {first: "2020/02/10 星期一", last: "2020/02/16 星期日"}
获取(指定日期 | 当前日期) 对应年份的第几周
//当前日期对应年份的第几周
date.getYearWeek()
//指定日期`dt`对应年份的第几周
date.getYearWeek(dt)
获取(给定日期 | 当前日期) 所在对应月份的第几周
// 无参:返回当前时间所在月份的第几周
date.getMonthWeek() // 5 (测试时间:2020-08-29)
// 1参:获取当前时间对应数字的星期
date.getMonthWeek('2020/10/15') // 3
获取(给定日期 | 当前日期) 所在对应年份的第几周
// 无参:返回当前时间所在年份的第几周
date.getYearWeek() // 35 (测试时间:2020-08-29)
// 1参:获取指定时间所处对应年份的第几周
date.getYearWeek('2020/10/15') // 42
获取 (给定日期 | 当前日期) 所在对应季度的第几周
// 无参:返回当前时间所在的季度中的第几周
date.getQuarterWeek() // 9 (测试时间:2020-08-29)
// 1参:获取指定时间所处对应季度的第几周getMonthDays
date.getQuarterWeek('2020/10/15') // 2
获取(给定日期|当前日期) 所在月的星期相关信息
date.getMonthWeekInfo()
date.getMonthWeekInfo(dt)
更改api请去文档查看 项目地址:github.com/shufei021/d…
总结
❝小编能力有限,难免某些地方有些疏漏,如果你有更好的点子,欢迎留言,文中若有不准确或错误的地方,欢迎指出!后期会持续维护。
❞