Reactjs React MomentJS从开始时间和结束时间获取持续时间

Reactjs React MomentJS从开始时间和结束时间获取持续时间,reactjs,datetime,momentjs,Reactjs,Datetime,Momentjs,我一直在试图找出计算活动持续时间的最佳方法 我有一个包含以下字段的集合: type Event { .. startsAt: "HH:mm MM-DD-YYYY" endsAt: "HH:mm MM-DD-YYYY" .. } 理想情况下,我希望节省开支 duration: String! 在我的GraphQL中,当创建事件时 有人能告诉我怎么做吗 我的堆栈: 反应 阿波罗 图形ql 我已安装以下设备: .. 动量 反应时刻 提前非常感谢有了startstartsAt和ende

我一直在试图找出计算活动持续时间的最佳方法

我有一个包含以下字段的集合:

type Event {
 ..
 startsAt: "HH:mm MM-DD-YYYY"
 endsAt: "HH:mm MM-DD-YYYY"
 ..
}
理想情况下,我希望节省开支

duration: String!
在我的GraphQL中,当创建事件时

有人能告诉我怎么做吗

我的堆栈:

反应 阿波罗 图形ql 我已安装以下设备: ..

动量 反应时刻

提前非常感谢

有了startstartsAt和endendsAt日期,您可以轻松地在前端计算持续时间,在您的组件中的某个位置

诸如此类:

// Convert `startsAt` and `endsAt` strings to moment date objects
const start = moment(state.Event.startsAt)
const end = moment(state.Event.endsAt)

// Calculate the duration
// Keep in mind you can get the duration in seconds, days, etc.
const duration = moment.duration(end.diff(start))
const hours = duration.asHours()

@Jordan Enev-非常感谢您的快速响应!由于某种原因,在尝试此操作后,它抛出了一个错误。diff不是一个函数,我假设我必须另外导入一些内容。最后,我做出了一个彻底的决定,切换到Unix时间戳

通过Unix时间戳,我实现了我的目标:

添加插件npm install moment duration格式并导入它:

..
import momentDurationFormatSetup from "moment-duration-format";


..

momentDurationFormatSetup(moment);
  const durationSeconds = (endsAt - startsAt) / 1000;
  const duration = moment.duration(durationSeconds, "seconds").format("mm");

..
同样在上面,我将moment包装在一个HOC momentDurationFormatString中,该字符串由新导入的插件提供

-然后使用“反应力矩”渲染:

..
import Moment from "react-moment";

..

<Moment unix format="dddd, Mo MMM, H:mm">
          {startsAt / 1000}
</Moment>
..

由于发生错误而引发错误。不过,我很高兴你自己解决了这个问题。