Конвертировать время эпохи в минуты - 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

Следовательно, это преобразование для преобразования эпох в удобочитаемые минуты.

Это возможно?

Более четко поделитесь своими требованиями, каков ваш ожидаемый результат. ?

Kamalakannan J 29.07.2018 20:09
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
65
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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>);
}

как рассчитать минуты из этого о / п: 25548140.800333332?

user1234 29.07.2018 20:21

Вам просто нужно вычесть эти минуты из результата; Я обновил свой ответ.

Chayim Friedman 30.07.2018 07:56
Ответ принят как подходящий

Если вы используете 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, где я должен поместить логику, если не компонент, как лучшая практика?

user1234 29.07.2018 20:38

Таким образом, если вы пропустите какой-то интервал, ваш расчет будет неверным.

Chayim Friedman 30.07.2018 07:57

Хотите узнать, сколько времени пользователь провел без «перенаправления» (или «жесткой навигации») ИЛИ в другом случае?

Kamalakannan J 30.07.2018 17:15

Другие вопросы по теме