看了帮助发现 DATEIF 应该是不能计算时间控件的差值,只能是日期
请问两个时间插件的差值该如何计算,换算成小时的差值、分钟的差值甚至秒数的差值
请
登录后发表观点
// 获取 input 中传入的时间字段
const startTime = input.startTime;
const endTime = input.endTime;
// 检查是否为空
if (!startTime) {
output = { 错误: "缺少初始时间" };
} else if (!endTime) {
output = { 错误: "缺少结束时间" };
} else {
// 转换为 JavaScript Date 对象
const start = new Date(startTime);
const end = new Date(endTime);
// 检查日期有效性
if (isNaN(start.getTime())) {
output = { 错误: "初始时间格式无效" };
} else if (isNaN(end.getTime())) {
output = { 错误: "结束时间格式无效" };
} else {
// 计算时间差(毫秒转秒)
const diffMs = end - start;
const diffSeconds = Math.abs(Math.floor(diffMs / 1000));
// 分解为 天、小时、分钟、秒
const days = Math.floor(diffSeconds / (3600 * 24));
const hours = Math.floor((diffSeconds % (3600 * 24)) / 3600);
const minutes = Math.floor((diffSeconds % 3600) / 60);
const seconds = diffSeconds % 60;
// 构建输出文本
const parts = [];
if (days > 0) parts.push(days + "天");
if (hours > 0) parts.push(hours + "小时");
if (minutes > 0) parts.push(minutes + "分钟");
if (seconds > 0 || parts.length === 0) parts.push(seconds + "秒"); // 防止全为0
let result = parts.join("");
// 如果是负数(结束时间 < 开始时间),加“负”前缀
if (diffMs < 0) {
result = "负" + result;
}
// 返回结果(对应字段“差值”)
output = { Time: String(result)};
}
}
可以使用代码块进行计算