Quiero calcular la diferencia de días desde la fecha y hora 2021-02-23T08:31:37.1410141 (yyyy’-‘MM’-‘dd’T’HH’:’mm’:’ss.fffffff) que proviene del servidor que está en formato de cadena, con la fecha y hora actual en angular.

Traté de usar

const daysDiff = Math.floor(Math.abs(<any>fromDate - <any>toDate) / (1000*60*60*24));

Pero no me funciona. ¿Cómo puedo calcular la diferencia de días?

0
Ragesh Pikalmunde 24 feb. 2021 a las 13:16

3 respuestas

La mejor respuesta
const date1 = new Date("2021-02-23T08:31:37.1410141"); 
const date2 = new Date(); 
const diffTime = date2.getTime() - date1.getTime(); 
const diffDays = Math.floor(Math.abs(diffTime / (1000 * 3600 * 24)));
1
Javier Martinez 24 feb. 2021 a las 11:06

Que este trabajo para usted? Date.now() - <old date timestamp> esto da la diferencia en milisegundos

Entonces, para calcular la diferencia en días usamos: Math.floor((Date.now() - <old date timestamp>) / (1000 * 60 * 60 * 24))

0
user15269671user15269671 24 feb. 2021 a las 10:21

Tuve el mismo problema durante algún tiempo al recibir datos como 2020-11-12T12:18:58.019+03:30 pero lo manejé con este fragmento de código:

          const date = createAt.substr(0, 10);
      const time = createAt.substr(11, 19).split('.')[0];
      if (date === '0001-01-01') {
        return '';
      } else {
        return (
          time +
          ' - ' +
          moment(date, 'YYYY-M-D').locale('fa').format('YYYY/MM/DD')
        );
      }

Dado que está recibiendo una cadena de datos tan grande como 27, debe cambiar los métodos .substr(0, 10) de acuerdo con sus necesidades

0
pouria .y 24 feb. 2021 a las 11:42