Javascript 使用moment.js计算到下一个下午2点的时间

Javascript 使用moment.js计算到下一个下午2点的时间,javascript,string,date,momentjs,Javascript,String,Date,Momentjs,我希望使用moment.js来计算到下一个下午2点的剩余时间 到目前为止,根据我发现的另一个脚本,我有以下内容: var getTimeLeft = function(){ var now = moment(); var deadline = now.clone().hour(14).minute(0).second(0); if(now.isAfter(deadline)) { var tomorrow = moment(new Date()).add(1,'days')

我希望使用moment.js来计算到下一个下午2点的剩余时间

到目前为止,根据我发现的另一个脚本,我有以下内容:

var getTimeLeft = function(){
  var now = moment();
  var deadline = now.clone().hour(14).minute(0).second(0);
  if(now.isAfter(deadline)) {
    var tomorrow  = moment(new Date()).add(1,'days').hour(14).minute(0).second(0);
    console.log(tomorrow.from(now));
  }else {
    console.log(deadline.from(now));
  }
}
getTimeLeft();
如果时间在下午2点之前,则返回四舍五入格式的时间,即“在5小时内”

如果时间超过下午2点,则返回“一天内”

我如何编辑此脚本,以便如果在下午2点之前运行,我将以
“4hrs 57mins”
的格式获得答案,而不进行舍入-如果是第二天,它将执行相同的操作,它将
“21hrs 2mins”

Cheers

实际上总是以该格式返回一个
字符串
,您不能在
小时
分钟
毫秒
内得到结果

解决方案:

显示带有
小时
分钟
的自定义消息的一个小技巧是使用,它返回的差值为
毫秒
分钟
小时

tomorrow.diff(now, "hours") + ' hrs, ' + (tomorrow.diff(now, "minutes") % 60) + ' mins'
您只需指定
hours
/
minutes
作为
.diff()
方法的第二个参数,即可获得所需格式的结果

演示:

这是一个工作演示:

var getTimeLeft=function(){
var now=力矩();
var deadline=now.clone().hour(14)、minute(0)、second(0);
如果(现在,在(截止日期)之后){
var明天=时刻(新日期())。添加(1,'天')。小时(14)。分钟(0)。秒(0);
log(明天.diff(现在是“小时”)+“小时”+(明天.diff(现在是“分钟”)%60)+“分钟”);
}否则{
log(deadline.diff(现在是“小时”)+“小时”+(deadline.diff(现在是“分钟”)%60)+“分钟”);
}
}
getTimeLeft()