Javascript 使用momentjs检查零持续时间
我实现了一个函数,它获取一个字符串并计算一天的序列 函数因无效的持续时间字符串而挂起。这些字符串被解释为零持续时间,因此函数构建一个无限序列Javascript 使用momentjs检查零持续时间,javascript,momentjs,Javascript,Momentjs,我实现了一个函数,它获取一个字符串并计算一天的序列 函数因无效的持续时间字符串而挂起。这些字符串被解释为零持续时间,因此函数构建一个无限序列[“00:00”,“00:00”,…] timeSeq("PT12H") // ["00:00", "12:00"] timeSeq(undefined) // hangs .... 零持续时间通过duration.toISOString()映射到P0D。我应该如何检查函数中的零持续时间 const timeSeq = (durationString,
[“00:00”,“00:00”,…]
timeSeq("PT12H")
// ["00:00", "12:00"]
timeSeq(undefined)
// hangs ....
零持续时间通过duration.toISOString()
映射到P0D
。我应该如何检查函数中的零持续时间
const timeSeq = (durationString, format = "HH:mm") => {
const duration = moment.duration(durationString);
// function should return [] for zero duration
// ???
const current = moment().startOf("day");
const end = current.clone().add(1, "day").startOf("day");
const sequence = [];
while (current < end) {
sequence.push(current.format(format));
current.add(duration);
}
return sequence;
};
const timeSeq=(durationString,format=“HH:mm”)=>{
常量持续时间=时刻持续时间(durationString);
//函数应返回[],持续时间为零
// ???
恒流=力矩().startOf(“日”);
const end=current.clone().add(1,“日”).startOf(“日”);
常量序列=[];
while(当前<结束){
sequence.push(current.format(format));
当前。添加(持续时间);
}
返回序列;
};
您可以使用函数获取持续时间值,您可以使用或作为('ms')
(或类似的getter)
此外,您还可以使用检查对象是否为持续时间
您可以使用以下内容:
函数为零持续时间(dur){
如果(!力矩持续时间(dur)){
返回true;
}
返回dur.as('毫秒')==0;
}
[null,未定义,'P0D','hello','P1D']。forEach((durationString)=>{
常量持续时间=时刻持续时间(durationString);
log(durationString,isZeroDuration(duration));
});代码>
由于我上面的函数不能在负持续时间下正常工作,我将您的解决方案调整为返回持续时间。由于('ms')您是对的,因此提供的示例用于问题标题(使用momentjs检查零持续时间),深入查看问题