首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取日、小时和分钟的不同时刻js

问获取日、小时和分钟的不同时刻js
EN

Stack Overflow用户
提问于 2018-03-20 21:09:10
回答 3查看 12.8K关注 0票数 11

我有两个日期时间选择器(from,to)。我需要得到开始和结束日期在分钟(1505min)和日期和时间(2天1h 35分钟)之间的差异。

我使用moment.js

代码语言:javascript
复制
var now = moment('2018-03-28 14:02');
var end = moment('2018-06-02 00:00'); // another date
var duration = moment.duration(end.diff(now));
var days = duration.asDays();
console.log(days) //65.41527777777777

这里的输出是65.41527777777777,其中65是正确的天,但如何将41527777777777转换为小时和分钟。如果我做这个0,41527777777777 * 24 = 9,96666666648,我得到9个小时,再一次0,96666666648 * 60 = 57,这是正确的区别

代码语言:javascript
复制
65 day, 9 hour and 57 min

但是,有没有办法直接用moment.js做到这一点呢?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-20 21:15:40

不是直接在moment.js中,但是this open issue把我带到了this moment.js plugin,它允许格式化持续时间。看起来你可以使用这个插件来获得你想要的输出:

代码语言:javascript
复制
duration.format("D [day], H [hour and] m [min]")
票数 6
EN

Stack Overflow用户

发布于 2018-03-20 21:46:02

没有插件:

代码语言:javascript
复制
var now = moment('2018-03-28 14:02');
var end = moment('2018-06-02 00:00'); // another date
var duration = moment.duration(end.diff(now));

//Get Days and subtract from duration
var days = duration.asDays();
duration.subtract(moment.duration(days,'days'));

//Get hours and subtract from duration
var hours = duration.hours();
duration.subtract(moment.duration(hours,'hours'));

//Get Minutes and subtract from duration
var minutes = duration.minutes();
duration.subtract(moment.duration(minutes,'minutes'));

//Get seconds
var seconds = duration.seconds();
console.log("Days: ",days);
console.log("Hours: ",hours);
console.log("Minutes: ",minutes);
console.log("Seconds: ",seconds);
票数 16
EN

Stack Overflow用户

发布于 2020-08-25 19:53:31

当moment.asDays(date)返回float时,需要使用Math.floor()

​

代码语言:javascript
复制
function durationAsString(start, end) {
  const duration = moment.duration(moment(end).diff(moment(start)));

  //Get Days
  const days = Math.floor(duration.asDays()); // .asDays returns float but we are interested in full days only
  const daysFormatted = days ? `${days}d ` : ''; // if no full days then do not display it at all

  //Get Hours
  const hours = duration.hours();
  const hoursFormatted = `${hours}h `;

  //Get Minutes
  const minutes = duration.minutes();
  const minutesFormatted = `${minutes}m`;

  return [daysFormatted, hoursFormatted, minutesFormatted].join('');
}

console.log(durationAsString('2018-03-28 14:02', '2018-06-02 00:00'))

console.log(durationAsString('2018-06-01 14:02', '2018-06-02 00:00'))
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/moment.min.js"></script>

​

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49385109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档