Как преобразовать миллисекунды из date.now() в формат DD/MM/YYYY HH:MM:SS или преобразовать строку с датой в миллисекунды.

У меня также есть строка, которая возвращает следующее:

appointment: "21/11/2019 18:00:30"

Мне нужно получить разницу в часах между date.now и назначением

Вы можете использовать конвейер даты для отображения даты в нужном вам формате.

 currentdate = Date.now() {{currentdate | date : 'dd/MM/y, HH:mm:ss'}} 

Вам необходимо преобразовать строку даты в правильный формат, подобный этому: "2019-11-21T18:00:30"; а затем получить разницу с помощью .getTime()

Попробуйте вот так:

 let difference = Math.abs(new Date().getTime() - new Date(this.appointment).getTime()); var seconds = difference / 1000; var minutes = difference / 1000 / 60; var hours = minutes / 60; console.log("Difference in Hours",hours) console.log("Difference in minutes",minutes) console.log("Difference in seconds",seconds) 

Рабочая Демо

Чтобы преобразовать дату, вы можете использовать DatePipe :

 let datePipe = new DatePipe(); datePipe.transform(date, 'dd/MM/yyyy hh:mm:ss'); 

Чтобы узнать разницу между Date.now () и датой, вы можете взглянуть на этот ответ или использовать следующий момент :

 import * as moment from 'moment'; // ... const difference = moment(moment(),"DD/MM/YYYY HH:mm:ss").diff(moment(appointment,"DD/MM/YYYY HH:mm:ss")) 

Вам нужно будет установить moment так:

 npm install --save moment 

Разница часов:

 const dateAppointment = new Date('1/11/2019 18:00:30'); const currentDate = new Date(); console.log(`currentDate is `, currentDate ); const diffTime = Math.abs(currentDate - dateAppointment); const diffHours = Math.ceil(diffTime / (1000 * 60 * 60)); console.log(`diffHours is`, diffHours ); 

Пример:

 const dateAppointment = new Date('1/11/2019 18:00:30'); const currentDate = new Date(); console.log(`currentDate is `, currentDate ); const diffTime = Math.abs(currentDate - dateAppointment); const diffHours = Math.ceil(diffTime / (1000 * 60 * 60)); console.log(`diffHours is`, diffHours ); 

ОБНОВИТЬ:

HTML:

 {amp}lt;p{amp}gt;currentDate is {{ currentDate | date : 'dd.MM.y, HH:mm:ss' }} {amp}lt;/p{amp}gt; {amp}lt;p{amp}gt;dateAppointment is {{ dateAppointment | date : 'dd.MM.y, HH:mm:ss' }} {amp}lt;/p{amp}gt; {amp}lt;p{amp}gt;differenceHour is {{ differenceHour }} {amp}lt;/p{amp}gt; 

Машинопись:

  name = 'Angular'; currentDate = new Date(); dateAppointment = new Date('1/11/2019 18:00:30'); differenceHour = 0; constructor(){ const diffTime = Math.abs(this.currentDate - this.dateAppointment); this.differenceHour = Math.ceil(diffTime / (1000 * 60 * 60)); } 

Пример Stabblitz можно увидеть здесь

Вот рабочий пример

 var d = new Date, dformat = [d.getDate(), d.getMonth() 1 , d.getFullYear()].join('/') ' '  [d.getHours(), d.getMinutes(), d.getSeconds()].join(':'); console.log(dformat) 

ВЫХОД

26/12/2019 15:48:17

Есть один способ сделать это без стороннего

 let date = new Date(Date.now()); date = `${date.getDate()}:${date.getMonth()   1}:${date.getFullYear()}:${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`; 

и есть способ использовать angular, если вы используете Angular, вы можете использовать «DatePipe», с методом преобразования, например:

 datePipe.transform(date, 'dd/MMM/yyyy hh:mm:ss'); 

и получить разницу между датами есть только один способ

 const currentDate = new Date('26/12/2019'); const appoinemnt = new Date('15/1/2020'); const diffTime = Math.abs(appoinemnt - currentDate ); const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); console.log(diffDays);