IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 《JavaScript插件》时间格式化工具time-formater的详解 -> 正文阅读

[JavaScript知识库]《JavaScript插件》时间格式化工具time-formater的详解

记录一些项目中用的到的插件,方便以后及时翻看…

求关注,求收藏,求点赞,如果发现博主有写的不合理的地方请及时告知,谢谢~

前言

在这里插入图片描述

在实际项目的开发中,一个中大型项目往往会使用到非常多插件、工具,如果说一个项目全部靠团队开发,那明显是不现实的,且不说存在重复造轮子的问题,如果要将工具开发的具有较强的应用性还是要投入非常大的精力的(除非是业务的特殊性导致没有任何插件或工具符合期望);
?
本系列的文章主要目的是记录日常开发中应用到的JS插件,并且将一些用法记录下来,方便自己以及各位小伙伴查阅;

本文的主角:time-formater(npm地址),这是一个时间格式化工具,虽然有点小众,并且也没有@types,这也就导致了无法在TypeScript中应用,可能有人会问那这为啥还要用…不要问
?

安装与使用

安装就是常规的安装方式,再次声明,没有@types/time-formater,需要自己补上

// 安装
npm i -S time-formater

使用的话在Node中和浏览器环境都差不多,只是规范不同

// 可以
const timeFormater = require('time-formater')

// 也可以
import timeFormater from "time-formater";

语法

解析参数

format函数接收许多预设定好的形参作为参数(其它参数见第二章节),比如最常见的"YYYY-MM-DD HH:mm:ss",代表当前时间并且精确到秒

// 2022-02-09 12:12:12
timeFormater().format("YYYY-MM-DD HH:mm:ss")

这是当前的全时间,如果要裁剪都是支持的,比如

// 2022-02-09 12:12
timeFormater().format("YYYY-MM-DD HH:mm")

// 2022-02-09 12
timeFormater().format("YYYY-MM-DD HH")

甚至连接符也可以改

// 2022/02/09 12/12/12
timeFormater().format("YYYY/MM/DD HH/mm/ss")

参数

format函数的使用参数远不止上面这些,它接收许多预设定好的参数,比如想知道当前是星期几,那么可以输入参数"d"

// 三
timeFormater().format("dd")

// // 2022/三月/09 12/12/12
timeFormater().format("YYYY/MMMM/DD HH/mm/ss")

具体如下:

名称参数输出
月份M1 2 3 …
?
MM01 02 03 …
MMM1月 2月 3月…
MMMM一月 二月 三月 …
季度Q1 2 3 4
日期D1 2 3 …
Do1日 2日 3日…
DD01 02 03 …
星期d0 1 2 3 4 5 6
dd日 一 二 三 四 五 六
ddd周日 周一 周二 周三 周四 …
dddd星期日 星期一 星期二 星期三
年份YYYY1970 1971…
上午/下午等A凌晨 早上 … 下午 晚上
a凌晨 早上 … 下午 晚上
时刻H0 1 2 3 … 22 23
HH00 01 … 22 23
h1 2 … 11 12
hh01 02 … 11 12
分钟m0 1 2 … 58 59
mm00 01 02 … 58 59
s0 1 2 … 58 59
ss00 01 02 … 58 59
毫秒s0 1 2 … 8 9
ss00 01 … 98 99
sss000 001 … 998 999
unix 时间戳X1495357559853
Unix 时间戳 毫秒x1495357559853

其他功能

时差

fromNow,用于计算输入时间距离当前时间的时差,用法如下:

let fromNow = time('2022-01-01').fromNow()

// 2个月前
console.log(fromNow)

?

倒计时

例子来源于npm官方说明,大致功能如下:

const time = require('time-formater')
let remain = 100000 // 10万秒
let countdown = time.countdown(remain)
let token = '剩余:d天H小时m分钟s秒'
 
// 浏览器
function step() {
    document.title = countdown.format(token) // 剩余:1天3小时46分钟40秒
    requestAnimationFrame(step)
}
step()

这里用到了,两个函数,一个是countdown,一个是countdown上的format
?

countdown

返回倒计时的时间量。

  • time <number | string | Date> 类型为数字表示剩余的秒数,为Date实例或字符串(符合ISO 8601格式),表示结束的时间点。

?

format(token)

将时间量格式化为字符串。

  • token 用于指定输出格式。例:‘剩余:d天H小时m分钟s秒’ => “剩余:1天11小时4分钟38秒”。
token描述
d天数
H小时
m分钟
s
S毫秒
#前缀,表示在前面填充零到指定宽度。 例:#3d 表示将天数填充到3个字符,001 。

TypeScript类型

很遗憾,这个插件没有提供类型,只能自己根据类型自己去补充,大致类型补充如下:

interface countdownFormat {
    format: (params: string) => string;
}

interface FormaterInterface {
    format: (params?: string | number) => string;
    fromNow: () => string;
    countdown: (params: number | string | date) => countdownFormat;
}

declare module "time-formater" {
    function timeFormater(params?: string | number): FormaterInterface {}

    export = timeFormater;
}

可能还不是非常完整,有兴趣额的小伙伴可以进一步补充;
?

小结

这是一个个人感觉比较好用的时间格式化工具,唯一的缺点就是作者好像后期没有继续对其维护,包括对TypeScript的支持也非常不友好,这一点需要自己弥补,除此之外个人感觉还是非常不错的,值得推荐;

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:02:55  更:2022-02-14 21:03:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:44:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码