timeago.js v4.0 发布

来源: 投稿
2019-10-14 11:12:00

回忆

2 年前,自己还是基于 Python + bootstrap 开发一些内部平台。因为涉及到需要使用 *** time ago 类似的时间显示,于是用 Python 实现了一个方法 timeAgo,在服务端转化好了之后给前端显示。因为页面国际化,所以内置有中英文两种翻译。

那个时候,ES6 推广起来了,前端开发开始疯狂使用 React、Vue、Angular 三大框架,前端能做的事情越来越多。React 用户量陡增阶段,我们的一个平台也尝试使用 React,自己也开始初入前端,使用 Python 在服务端做 timeAgo 计算的最大问题在于无法进行动态渲染,因为动态渲染还是需要前端 js 配合。

于是,timeago.js 出现了,将 Python 一套翻译成 JavaScript,然后增加动态更新的机制。

timeago.js is a tiny(2.0 kb) library used to format date with `*** time ago` statement.

这个项目是一个很 nano 的项目,打包出来,内置中英文翻译也就 2 kb 不到。开源出去之后,几次上 trending,star 居然高达上千。

v4.0

从最开始的 1.0 版本到现在 的 4.0 版本,其实功能上区别不大,主要修改还是在于代码组织、API 设计、以及技术栈更新。

v4.0 从一年半前就开 issue 准备动工,但是因为工作原因,周末完全没有写业务代码的动力。不过这一年多扩从了不少语言版本。

主要内容包括:

  • ✅从 ES5 -> ES6 -> typescript
  • ✅从单文件 -> webpack 打包 -> rollup
  • ✅从 class API -> function API
  • ✅移除 jQuery 支持
  • ✅扩展 i18n 国际化
  • ✅单测、覆盖率

使用

快速开始

  • 安装

npm install timeago.js

  • 引入
import { format, render, cancel, register } from 'timeago.js';

或者在 html 中以 script 标签的方式引入,使用全局变量 timeago

<script src="dist/timeago.min.js"></script>
  • example
// format the time with locale
format('2016-06-12', 'en_US');

API

  • format:格式化时间为 time ago 格式静态字符串,可用于 node 环境;
  • render & cancel:页面上动态渲染 dom 标签;
  • register:注册自定义的语言 locale;

目前已经包含 46 个语言翻译。更全面的使用文档见:README.md。Live Demo:https://timeago.org

这周末花了一天时间,整理出来终结 v4.0 版本,又可以管两年了。

展开阅读全文
点击加入讨论🔥(2) 发布并加入讨论🔥
2 评论
24 收藏
分享
返回顶部
顶部