【开源工具】Utils Date —— 重造轮子,就要简单的
发布于 1 个月前 作者 SilenceHVK 498 次浏览 来自 分享

Utils Date git start git fork

releases version node version npm version yarn version rollup version

  Utils Date 是一个用于扩展 JavaScript Date 对象的工具包,旨在实现轻量级,简单且易于使用。

  项目初期先只实现常用的三个功能,随着后续版本迭代,会进行扩展。

  • [x] Conversion date
  • [x] Date format
  • [x] Date calculation

安装

npm

	$ npm install utils-date

yarn

	$ yarn install utils-date

使用

在 ES6 或 ES6+ 中

	import utilsDate form 'utils-date';

在 Node.js 中

	const utilsData = require('utils-date')

在 Web 中的使用

	<script src="https://unpkg.com/[email protected]/dist/utils-date.min.js"></script>
  • Conversion date
	// Timestamp conversion
	utilsDate.parse(1528278558218); // Wed Jun 06 2018 17:49:18 GMT+0800 (中国标准时间)

	// Sql date conversion
	utilsDate.parse(/Date(1528278558218)/); // Wed Jun 06 2018 17:49:18 GMT+0800 (中国标准时间)

	// UTC time conversion
	utilsDate.parse("Wed Jun 06 2018 17:49:18 GMT+0800 (中国标准时间)"); // Thu Jun 07 2018 01:49:18 GMT+0800 (中国标准时间)

	// String date conversion
	utilsDate.parse("2018"); // Mon Jan 01 2018 08:00:00 GMT+0800 (中国标准时间)

	utilsDate.parse("2018-6"); // Fri Jun 01 2018 00:00:00 GMT+0800 (中国标准时间)

	utilsDate.parse("2018-6-7"); // Thu Jun 07 2018 00:00:00 GMT+0800 (中国标准时间)

	utilsDate.parse("2018-6-7 9"); // Fri Jun 01 2018 07:09:00 GMT+0800 (中国标准时间)

	utilsDate.parse("2018-6-7 9:00"); // Fri Jun 01 2018 07:09:00 GMT+0800 (中国标准时间)

	utilsDate.parse("2018-6-7 9:00:00"); // Fri Jun 01 2018 07:09:00 GMT+0800 (中国标准时间)

	utilsDate.parse("1528278558218"); // Wed Jun 06 2018 17:49:18 GMT+0800 (中国标准时间)

	utilsDate.parse("/Date(1528278558218)/"); // Wed Jun 06 2018 17:49:18 GMT+0800 (中国标准时间)
  • Date format
	// Used Date extend format 24 hours
	new Date().format("yyyy-MM-dd HH:mm:ss 星期 w"); // 2018-07-23 16:40:21 星期 一

	new Date().format("yyyy-MM-dd HH:mm:ss"); // 2018-07-23 16:17:21

	new Date().format("yy-M-d H:m:s"); // 18-7-23 16:17:21

	new Date().format("yy 年 M 月 d 日 H 时 m 分 s 秒"); // 18 年 7 月 23 日 16 时 17 分 21 秒

	new Date().format("yyyy-MM-dd"); // 2018-07-23

	new Date().format("yy"); // 18

	new Date().format("MM"); // 07

	new Date().format("M"); // 7

	// Used Date extend format 12 hours
	new Date().format("yyyy-MM-dd hh:mm:ss"); // 2018-07-23 04:20:43

	// Used utils-date
	utilsDate.format(new Date(),"yyyy-MM-dd HH:mm:ss"); // 2018-07-23 16:22:42

	utilsDate.format(1528278558218,"yyyy-MM-dd HH:mm:ss"); // 2018-06-06 17:49:18

	utilsDate.format(/Date(1528278558218)/,"yyyy-MM-dd HH:mm:ss"); // 2018-06-06 17:49:18

	utilsDate.format("Wed Jun 06 2018 17:49:18 GMT+0800 (中国标准时间)","yyyy-MM-dd HH:mm:ss"); // 2018-06-07 01:49:18

	utilsDate.format("2018","yyyy-MM-dd 00:00:00"); // 2018-01-01 00:00:00
  • Date calculation
	// Used Date extend add
	new Date().add(1,"year"); // Tue Jul 23 2019 21:59:33 GMT+0800 (中国标准时间)

	new Date().add(1,"month"); // Thu Aug 23 2018 22:00:19 GMT+0800 (中国标准时间)

	new Date().add(-1,"date"); // Sun Jul 22 2018 22:00:53 GMT+0800 (中国标准时间)

	new Date().add(-1,"hour"); // Mon Jul 23 2018 21:01:29 GMT+0800 (中国标准时间)

	new Date().add(-1,"minute"); // Mon Jul 23 2018 22:01:05 GMT+0800 (中国标准时间)

	new Date().add(-1,"second"); // Mon Jul 23 2018 22:02:33 GMT+0800 (中国标准时间)

	new Date().add(-1,"milisecond"); // Mon Jul 23 2018 22:01:33 GMT+0800 (中国标准时间)

	// Used Date extend method
	new Date().addYear(1); // Tue Jul 23 2019 22:03:24 GMT+0800 (中国标准时间)

	new Date().addMonth(1); // Thu Aug 23 2018 22:03:48 GMT+0800 (中国标准时间)

	new Date().addDate(-1); // Sun Jul 22 2018 22:04:20 GMT+0800 (中国标准时间)

	new Date().addHour(-1); // Mon Jul 23 2018 21:04:48 GMT+0800 (中国标准时间)

	new Date().addMinute(1); // Mon Jul 23 2018 22:06:37 GMT+0800 (中国标准时间)

	new Date().addSecond(1); // Mon Jul 23 2018 22:02:33 GMT+0800 (中国标准时间)

	new Date().addMilisecond(-1); // Mon Jul 23 2018 22:01:33 GMT+0800 (中国标准时间)

	// Used utils-date
	utilsDate.add(1528278558218,1,"year"); // Tue Jul 23 2019 22:03:24 GMT+0800 (中国标准时间)

	utilsDate.add("1528278558218",1,utilsDate.YEAR); // Tue Jul 23 2019 22:03:24 GMT+0800 (中国标准时间)

	utilsDate.add(/Date(1528278558218)/, -1 , utilsDate.MONTH); // Sun May 06 2018 17:49:18 GMT+0800 (中国标准时间)

	utilsDate.add("Wed Jun 06 2018 17:49:18 GMT+0800 (中国标准时间)", 1 , utilsDate.DATE); // Fri Jun 08 2018 01:49:18 GMT+0800 (中国标准时间)

	utilsDate.add("2018", 1 , utilsDate.HOUR); // Mon Jan 01 2018 09:00:00 GMT+0800 (中国标准时间)

	utilsDate.add("2018-2-1", 1 , utilsDate.MINUTE); // Mon Jan 01 2018 00:01:00 GMT+0800 (中国标准时间)

结束

  第一次实现扩展工具包,可能在一些实现方法上做的并不是很好,如果在使用上觉的有不方便的地方,或对于源码修改有建议的地方,请在 Issues 提出。

  Utils Date GitHub 地址: https://github.com/SilenceHVK/utils-date 请顺手给个 Star。

  最后感谢您的阅读与支持。

5 回复

把单元测试补上,再来谈 star

精神可嘉,但是代码有毒。

测试用例,API 命名,在 Date 原型链上加方法

@atian25 感谢大佬的提的建议,已把单元测试提上日程

@axetroy 感谢大佬的提的建议,第一次弄这种东西,写 API 文档什么的还没啥经验 ~~

感觉npm太随意了。。。随便搞点东西就上,至少要有人认可,有人用再发布。还有测试用例补上,不然谁敢用啊

回到顶部