【Moment.js】计算两个时间的时间差,并将结果转换为 ‌天、时、分、秒‌ 格式

文章目录

基本用法

  1. 确保项目中已安装 Moment.js
npm install moment
  1. 使用 moment.duration()diff() 方法计算时间差,并提取天、时、分、秒:
import moment from 'moment';

function formatTimeDuration(startTime, endTime) {
  // 创建 Moment 时间对象
  const start = moment(startTime);
  const end = moment(endTime);

  // 计算时间差(毫秒)
  const diffMs = end.diff(start);

  // 转换为 Duration 对象
  const duration = moment.duration(diffMs);

  // 提取天、时、分、秒
  const days = duration.days();
  const hours = duration.hours();
  const minutes = duration.minutes();
  const seconds = duration.seconds();

  // 格式化为字符串(例如:2天3小时15分钟30秒)
  return `${days}${hours}小时${minutes}分钟${seconds}`;
}

  1. 使用示例
const startTime = '2024-01-01 08:30:00';
const endTime = '2024-01-03 12:45:30';

const result = formatTimeDuration(startTime, endTime);
console.log(result); // 输出:2天4小时15分钟30秒

  1. 若需要更友好的显示(例如补零、单位缩写)
// 补零函数(例如:3分钟5秒 → 03分05秒)
const padZero = (num) => num.toString().padStart(2, '0');
const time =  `${days}${padZero(hours)}小时${padZero(minutes)}${padZero(seconds)}`
  1. 处理不同时间格式
const startTime = '2024/01/01 08-30-00';
const endTime = '2024-01-03 12:45:30';
// 年-月-日 时-分-秒
const format = 'YYYY-MM-DD HH-mm-ss';

const start = moment(startTime, format);	// 2024-01-01 08-30-00
const end = moment(endTime, format);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一颗不甘坠落的流星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值