Я работаю над проектом, используя 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
?
Ваша «метка времени» имеет тип String
(формат ISO). Вам нужно разобрать его на Date
. Передача строки в конструктор Date
создает недопустимый объект Date
, поэтому ваш расчет не выполняется NaN
.
я скопировал ваш код и заменил {message.timestamp}
на : 2019-04-09 13:01:22.036902+00:00
: jsfiddle.net/cwfeo517 и это работает
Я предполагаю, что вы не можете изменить код Python и просто использовать .minute
для объекта datetime? Пример: datetime.now().minute
Используйте библиотеку моменты и отформатируйте строку по своему усмотрению.
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>
это не то, о чем просил ОП, потому что он хочет оценить разницу между двумя датами
как он упомянул рассматриваемый вопрос how can I display only minutes from that timestamp
так подробно, как отображать часы и минуты. Но теперь обновил оба
я готов проголосовать за это, но до сих пор нет различий с использованием собственного API Date :)
Вы могли бы попробовать
{Math.round((new Date().getTime() - Date.parse(String(message.timestamp)))/60000)} минут назад
думаю должно сработать
Может быть, вы хотите попробовать с
moment.js
?