gpt4 book ai didi

jquery - 如何使用 moment.js 将年转换为月?

转载 作者:太空宇宙 更新时间:2023-11-03 23:01:11 25 4
gpt4 key购买 nike

目前我的代码如下所示:

moment.duration(res.duration, "years").format("Y [years] M [months]"); //Input 0.08 outputs 0

当 res.duration < 0 时,它仅返回 0。我尝试将我的代码修改为

moment.duration(res.duration, 'months').format("M [months]"); //Input 0.08 outputs 0

但似乎仍然不起作用。

知道如何将 0.08 完美转换为 1 吗?

最佳答案

问题是 0.08不是 1 个月,而是 0.96 个月,因此您必须对其进行四舍五入。

不幸的是moment-duration-format (我假设您正在使用)只能截断持续时间的值,将负整数传递给 precision选项。

可能的解决方案:

  1. 存储更高精度的值,而不是按小数点后第二位四舍五入。这是使用 0.080.08333333333333333 的实例。 (参见month()toISOString())

var dur = moment.duration(0.08, "years");
console.log(dur.format('M [Months]'));
console.log(dur.months());
console.log(dur.toISOString());

// More decimal gives 1 month
dur = moment.duration(0.08333333333333333, "years");
console.log(dur.format('M [Months]'));
console.log(dur.months());
console.log(dur.toISOString());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js"></script>

  • 使用时刻humanize() 。您可以按照 Relative Time 中所述自定义输出。 , Relative Time ThresholdsRelative Time Rounding文档部分。
  • moment.updateLocale('en', {
    relativeTime : {
    M: "1 month",
    MM: "%d months"
    }
    });

    var dur = moment.duration(0.08, "years");
    console.log(dur.humanize());
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>

    关于jquery - 如何使用 moment.js 将年转换为月?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47909997/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com