时刻 JS:自定义格式字符串到天持续时间



我有一个相当复杂的字符串与时间。像这样的东西 - "2.23:59:59.99".这意味着点之前的第一个数字是天数(2 天),另一个是时间计数 - 23 小时 59 分 59 秒和 9900 毫秒(或可能是 99 毫秒)。所以我需要将其转换为十进制数,例如2.99.我怎样才能使用力矩.js?

您可以简单地从"2.23:59:59.99"字符串创建时刻持续时间

2.1.0 开始,moment 支持解析 ASP.NET 样式的时间跨度。支持以下格式。

格式是小时、分钟、第二个字符串,用冒号分隔,如 23:59:59 .天数可以用点分隔符作为前缀,就像 7.23:59:59 .也支持部分秒数23:59:59.999

然后使用 asDays() 获取其值(以天为单位)

moment.duration().asDays()获取持续时间的长度(以天为单位)。


要从2.99中获取"2.23:59:59.99",您可以使用moment.duration(Number, String)创建持续时间format()并使用时刻持续时间格式插件的方法(使用精度参数)

// 2.23:59:59.99 to 2.99
const dur1 = moment.duration("2.23:59:59.99");
const durAsDays = dur1.asDays();
console.log(durAsDays);
// 2.99 to 2.23:59:59.99
const dur2 = moment.duration(durAsDays, 'days');
console.log(dur2.format("d.HH:mm:ss", 2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/2.2.2/moment-duration-format.min.js"></script>

moment.duration('2.23:59:59.99').asDays() 

参考 Moment JS .asDays() 方法

最新更新