Хочу показать на выходе:
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
Следовательно, это преобразование для преобразования эпох в удобочитаемые минуты.
Это возможно?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


это время в миллисекундах. Итак, чтобы получить минуты, вы должны разделить их на 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>);
}
как рассчитать минуты из этого о / п: 25548140.800333332?
Вам просто нужно вычесть эти минуты из результата; Я обновил свой ответ.
Если вы используете 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: Но хранить логику расчета на этот раз внутри компонента - действительно плохой подход.
спасибо @Kamalakannan J, где я должен поместить логику, если не компонент, как лучшая практика?
Таким образом, если вы пропустите какой-то интервал, ваш расчет будет неверным.
Хотите узнать, сколько времени пользователь провел без «перенаправления» (или «жесткой навигации») ИЛИ в другом случае?
Более четко поделитесь своими требованиями, каков ваш ожидаемый результат. ?