随着 Web 应用程序的不断发展,前端技术变得越来越重要。在前端开发中,我们通常需要处理日期和时间。这是非常常见的任务,但也很容易出错并导致应用程序崩溃。为了帮助您更好地处理时间,我们介绍了 npm 包 approximate-time,它可以帮助您轻松地格式化和显示时间。
安装 approximate-time
使用 npm 安装 approximate-time:
npm install approximate-time --save
使用 approximate-time
在您的 JavaScript 文件中,将 approximate-time 导入并将其用于日期和时间对象:
const approximateTime = require('approximate-time'); let now = new Date(); let approx = approximateTime(now); console.log(approx); // 输出 "刚刚"
这个包主要提供了三个方法:approximateTime
,approximateDate
和 approximateDateRange
,它们分别用于格式化时间、日期和日期范围。
approximateTime(date, options)
此方法将给定日期 "近似" 并返回一个字符串,通常近似得越近,返回的字符串就越短。
approximateTime(new Date()); // "刚刚" approximateTime(new Date(Date.now() - 1000 * 60 * 60)); // "1 小时之前" approximateTime(new Date(Date.now() - 1000 * 60 * 60 * 24 * 2)); // "2 天之前"
options
参数可选,可以控制输出的时间格式。可用选项如下:
short
:将输出转化为短字符串格式(如 "刚刚"、"1 小时之前"、"1 天之前" 等)。默认为false
。now
:用于当前日期和时间的字符串。默认为 "现在"。ago
:用于过去的日期和时间的字符串。默认为 "之前"。later
:用于未来日期和时间的字符串。默认为 "之后"。second
,minute
,hour
,day
,week
,month
,year
:将时间的单位转化为时间量,使其在输出中使用不同的文本格式。默认为 { second: '秒', minute: '分钟', hour: '小时', day: '天', week: '周', month: '个月', year: '年' }。
例如:
approximateTime(new Date(Date.now() - 1000 * 60 * 2), { short: true }); // "2 分钟之前" approximateTime(new Date(Date.now() - 1000 * 60 * 60 * 24 * 2), { ago: '以前' }); // "2 天以前"
approximateDate(date, options)
此方法将给定日期 "近似" 为日期字符串,并返回一个字符串。与 approximateTime
不同,这个方法只显示日期,没有时间。
approximateDate(new Date()); // "今天" approximateDate(new Date(Date.now() - 1000 * 60 * 60 * 24)); // "昨天" approximateDate(new Date(Date.now() - 1000 * 60 * 60 * 24 * 7)); // "7 天前"
options
参数可选。可用选项如下:
sameDay
:与approximateTime
中的short
选项相同。如果设置为true
,则将输出转换为短字符串格式。默认为false
.yesterday
:表示 “昨天” 的字符串。默认为 “昨天”。today
:表示 “今天” 的字符串。默认为 “今天”。tomorrow
:表示 “明天” 的字符串。默认为 “明天”。weekdays
:表示每天的字符串数组。默认为['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
。
例如:
approximateDate(new Date(Date.now() - 1000 * 60 * 60 * 24 * 7), { sameDay: true }); // "7 天前" approximateDate(new Date(Date.now() - 1000 * 60 * 60 * 24), { yesterday: '昨天' }); // "昨天"
approximateDateRange(fromDate, toDate, options)
此方法接受两个日期对象,指定日期范围,并返回一个字符串,其中包含两个日期之间的差异。如果两个日期不在同一天,则返回两个日期之间的完整日期范围。否则,只返回时间范围。
approximateDateRange(new Date(), new Date(Date.now() + 1000 * 60 * 60)); // "今天 22:59 - 明天 0:59" approximateDateRange(new Date(), new Date(Date.now() + 1000 * 60 * 60 * 24 * 7)); // "今天 - 下周日"
options
参数可选。可用选项如下:
sameDay
:与approximateTime
中的short
选项相同。如果两个日期在同一天,并且设置为true
,则会将输出转换为短字符串格式。默认为false
.sameWeek
:与sameDay
相同,但是如果两个日期在同一周,则转换为短字符串格式。默认为false
。yesterday
:与approximateDate
中的yesterday
选项相同。默认为 “昨天”。today
:与approximateDate
中的today
选项相同。默认为 “今天”。tomorrow
:与approximateDate
中的tomorrow
选项相同。默认为 “明天”。weekdays
:与approximateDate
中的weekdays
选项相同。
例如:
approximateDateRange(new Date(), new Date(Date.now() + 1000 * 60 * 60), { sameDay: true }); // "今天 22:59 - 23:59" approximateDateRange(new Date(), new Date(Date.now() + 1000 * 60 * 60 * 24 * 7), { sameWeek: true }); // "今天 - 下周日"
总结
approximate-time 是一个强大且易于使用的 npm 包,用于格式化 JavaScript 中的日期和时间。无论您是初学者还是专业人士,都可以受益于使用这个包。通过了解每个方法的参数选项,您可以轻松地控制输出并根据您的需要进行格式化。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f51ddbf8250f93ef89003c7