javascript - 带有年、月、日、小时和分钟的 date-fns 倒计时

标签 javascript date countdown date-fns

我正在使用 DateFNS我需要用它生成倒计时。 distanceInWordsToNow仅在大约 3 年内输出,但我需要确切的时间,例如 3 Years, 11 Months, 20 Days, 3 Hours, 2 Minutes .如何使用 DateFNS 存档?

这是一个 CodePen 示例:
https://codepen.io/anon/pen/qGajJB

脚本

todaysDateMin: dateFns.distanceInWordsToNow(new Date(2022, 6, 2, 0, 0, 15), {addSuffix: true})

最佳答案

formatDuration() date-fns v2 中的函数完全符合您的要求。

import { formatDuration, intervalToDuration } from 'date-fns'
let duration = intervalToDuration({
    start: new Date(2022, 6, 2, 0, 0, 15), 
    end: new Date(),
})

formatDuration(duration, {
    delimiter: ', '
})
// 2 years, 15 days, 23 hours, 49 minutes, 35 seconds

你甚至可以过滤它。
// take the first three nonzero units
const units = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds']
const nonzero = Object.entries(duration).filter(([_, value]) => value || 0 > 0).map(([unit, _]) => unit)

formatDuration(duration, {
    format: units.filter(i => new Set(nonzero).has(i)).slice(0, 3),
    delimiter: ', '
})
// 2 years, 15 days, 23 hours

关于javascript - 带有年、月、日、小时和分钟的 date-fns 倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56111231/

相关文章:

javascript 按钮在文本上显示/隐藏已更改

javascript - 如何从 benchmark.js 获取报告

javascript - Jquery.each() 和 Array.prototype.forEach() 方法的区别

php - 如何组合从下拉列表中选择的日期/时间以在 MySQL 查询中使用?

javascript - Android上 super 简单的js倒计时器?

javascript - 在 Angular6 中对一个组件使用多路由

javascript - 创建 3 个选择框(月、日、年),为每个选项创建 php 循环选项,并在 `days` 更改时使用 Javascript 更改 `months` 的选项

php - 如何仅存储月份和年份并将所有日期的日期默认设置为 1?

javascript - 使用 JavaScript 进行计数

javascript - 如何在时间变化时旋转图像?