将epoc时间转换为分钟-Javascript

时间:2018-07-29 18:06:27

标签: javascript

我想显示为输出:

User was online for 12 minutes

我正在通过设置时间间隔来计算用户在页面上花费的时间。

     componentDidMount() {

          this.interval = setInterval(() => this.setState({ time: Date.now() }), 60000);
      }
render () {
<div> User online for {this.state.time} minutes</div>

}

但这给了我

O / P:

User online for 1532887387453 minutes

通过这种转换,可以将纪元转换为人类可读的分钟。

这可能吗?

2 个答案:

答案 0 :(得分:2)

这次以毫秒为单位。因此,要获取分钟数,应将其除以1000(以获取秒),然后除以60(以获取分钟数),或者简单地将其除以60000。因此,使用以下代码:

constructor(props) {
  super(props);
  this.state = { time: 0 };
}

componentDidMount() {
  this.interval = setInterval(() => this.setState({ time: (Date.now() / 60000) - this.state.time }), 60000);
}

render() {
  return (<div>User online for {this.state.time} minutes</div>);
}

答案 1 :(得分:0)

如果您使用setInterval来更新花费的时间,为什么不能在每分钟之后简单地增加计数器,

constructor() {
  super();
  this.state = {
    timeSpent: 0, // if you want to show 1 as the minimum, set as 1 here
  }
}

componentDidMount() {
  this.interval = setInterval(() => this.setState({ timeSpent: ++this.state.timeSpent }), 60000);
}
render () {
  <div> User online for {this.state.timeSpent} minutes</div>
}

P.S:但是,将这种时间计算逻辑保留在组件内部确实是一种糟糕的方法。