Javascript 在Moment.js中获取日期、小时和分钟

Javascript 在Moment.js中获取日期、小时和分钟,javascript,momentjs,Javascript,Momentjs,这是我第一次使用Moment.js,我遇到了以下问题,所以我有以下日期: now: 2017-01-26T14:21:22+0000 expiration: 2017-01-29T17:24:22+0000 我想得到的是: Day: 3 Hours: 3 Mins: 3 我尝试了以下代码: const now = moment(); const exp = moment(expire_date); console.log(expire_date); days = exp.diff(now,

这是我第一次使用Moment.js,我遇到了以下问题,所以我有以下日期:

now: 2017-01-26T14:21:22+0000
expiration: 2017-01-29T17:24:22+0000
我想得到的是:

Day: 3
Hours: 3
Mins: 3
我尝试了以下代码:

const now = moment();
const exp = moment(expire_date);
console.log(expire_date);
days = exp.diff(now, 'days');
hours = exp.diff(now, 'hours') - (days * 24);
minutes = exp.diff(now, 'minutes') - ((days * 1440) + (hours * 24) * 60);

我知道我做错了什么(可能是我的计算或我使用了错误的方法),但我不知道是什么

这将为您提供正确的值,并消除手动计算的麻烦

let expiration=“2017-01-29T17:24:22+0000”
const now=力矩();
常数exp=时刻(到期);
console.log(exp.format());
天=经验差(现在称为“天”);
小时=经验减去(天,'天').diff(现在是“小时”);
分钟=经验减去(小时,'hours').diff(现在是'minutes');
console.log(天、小时、分钟)

MomentJS可以为您计算所有这些,而无需您进行任何逻辑运算

  • 首先找出这两个时刻之间的差异
  • 将其表示为持续时间
  • 然后显示所需持续时间的任何组件
    .days()
    .hours()
注意:如果需要,还可以表示整个持续时间
.asDays()
.asHours()

const now=时刻(“2017-01-26T14:21:22+0000”);
常数到期=时刻(“2017-01-29T17:24:22+0000”);
//获得时刻之间的差异
const diff=到期日.diff(现在);
//表示为持续时间
const diff duration=力矩持续时间(diff);
//展示
log(“天:,diffDuration.Days());
log(“Hours:,diffDuration.Hours());
log(“分钟:,diffDuration.Minutes())

有关更多信息,请查看文档

var now=moment()
var exp=moment().add(1,'days')
var days=exp.diff(现在是“days”)
var月数=exp.diff(现在为“月数”)
var years=exp.diff(现在是'years',true)//浮点数
console.log(现在、以后、天、月、年)

试试我的解决方案。我想是这样的:

  var now = moment("2017-01-26T14:21:22+0000");
  var expiration = moment("2017-01-29T17:24:22+0000");
  var minsAverage = expiration.diff(now, "minutes");

  var min = parseInt(minsAverage % 60);
  var hours = parseInt(minsAverage / 60);
  var days = parseInt(hours / 24);
  hours = hours - 24*days;

如果间隔大于一个月,此解决方案将不会显示正确的天数。将其用于天:
console.log(“天:”,expiration.diff(现在是“天”)