我有一个相当复杂的字符串与时间。像这样的东西 - "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() 方法