首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >人类可读的Luxon区间

人类可读的Luxon区间
EN

Stack Overflow用户
提问于 2020-08-21 23:57:37
回答 1查看 3.1K关注 0票数 11

嗨,我想以一种本地化的人类可读的方式来表达一个鲁克逊区间(例如,9天,3小时)。

我从现在开始就做到了这一点。使用以下代码:

代码语言:javascript
复制
DateTime.fromISO(value).toRelative({ locale: "es" });

但是我既不能使用持续时间对象的间隔,也不能实现同样的效果。

这就是我们要做的。但并不是真正的本地化。

代码语言:javascript
复制
    const start = DateTime.fromSQL("2020-06-19 11:14:00");
    const finish = DateTime.fromSQL("2020-06-21 13:11:00");

    const {days, hours, minutes} = Interval
        .fromDateTimes(start, finish, {locale: "es"})
        .toDuration(["days", "hours", "minutes"]).values;
    
    console.log(
        `${days ? days + " días " : ""} ${hours ? hours + " horas" : ""} ${
            minutes ? minutes + " minutos." : ""
        }`
    );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-10 16:49:49

Duration haven't any analogues of humanize() method,所以你应该使用第三方库。例如,具有多语言支持的humanize-duration

代码语言:javascript
复制
const DateTime = luxon.DateTime;
const Interval = luxon.Interval;

const start = DateTime.fromSQL("2020-06-19 11:14:00");
const finish = DateTime.fromSQL("2020-06-21 13:11:00");

const formatted = Interval
    .fromDateTimes(start, finish)
    .toDuration()
    .valueOf();

console.log(humanizeDuration(formatted))
console.log(humanizeDuration(formatted, { language: 'es' }))
console.log(humanizeDuration(formatted, { language: 'ru' }))
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/luxon@1.25.0/build/global/luxon.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/humanize-duration@3.25.1/humanize-duration.min.js"></script>

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63526184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档