Конвертировать временную метку python в минуты, используя реакцию JavaScript

Я работаю над проектом, используя python (3.7) и React, в котором я получаю timestamp от python и мне нужно отображать его внутри react component и отображать как minutes.

Вот что я пробовал:

{Math.round((new Date().getTime() - new Date(message.timestamp).getTime())/60000)} minutes ago

он отображается как:

NaN minutes ago

Если я покажу это как:

{message.timestamp}

затем он возвращает:

2019-04-09 13:01:22.036902+00:00

Итак, как я могу отображать только минуты из этого timestamp?

Может быть, вы хотите попробовать с moment.js?

r g 09.04.2019 15:29

Ваша «метка времени» имеет тип String (формат ISO). Вам нужно разобрать его на Date. Передача строки в конструктор Date создает недопустимый объект Date, поэтому ваш расчет не выполняется NaN.

David 09.04.2019 15:32

я скопировал ваш код и заменил {message.timestamp} на : 2019-04-09 13:01:22.036902+00:00: jsfiddle.net/cwfeo517 и это работает

messerbill 09.04.2019 15:35

Я предполагаю, что вы не можете изменить код Python и просто использовать .minute для объекта datetime? Пример: datetime.now().minute

Orysza 09.04.2019 15:36
Поведение ключевого слова "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) для оценки ваших знаний,...
1
4
383
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Используйте библиотеку моменты и отформатируйте строку по своему усмотрению.

const a = "2019-04-09 13:01:22.036902+00:00"
console.info(moment(a).format('hh:mm A'))
<script src = "//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.js"></script>

Использование Date

var a = new Date("2019-04-09 13:01:22.036902+00:00")


a.getMinutes()

console.info("hours:"+a.getHours(),"minutes:"+a.getMinutes())

Согласно комментарию. Если вы ищете разницу между двумя временными метками, то

const timediff= moment().diff(moment("2019-04-09 13:01:22.036902+00:00"),'minutes')


console.info('timediff',timediff)
<script src = "//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.min.js"></script>

это не то, о чем просил ОП, потому что он хочет оценить разницу между двумя датами

messerbill 09.04.2019 15:42

как он упомянул рассматриваемый вопрос how can I display only minutes from that timestamp так подробно, как отображать часы и минуты. Но теперь обновил оба

Revansiddh 09.04.2019 15:49

я готов проголосовать за это, но до сих пор нет различий с использованием собственного API Date :)

messerbill 09.04.2019 19:11

Вы могли бы попробовать

{Math.round((new Date().getTime() - Date.parse(String(message.timestamp)))/60000)} минут назад

думаю должно сработать

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