конвертировать (дата и время из postgresql) в javascript время - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть два столбца в таблице PostgreSQL (start_date (в формате даты) и cancellation_date (в формате отметки времени)). Один в формате даты, а другой в формате отметки времени. Я хочу получить разницу между двумя значениями в количестве дней. Я отправляю данные в javascript.

Как рассчитать разницу в днях в javascript? например, одно значение - 2010-10-14. второе значение 2010-10-16 04:05:06. разница будет 3 дня.

Моя проблема в том, что я получаю эти два значения в ответе API в формате PostgreSQL (дата и метка времени). И простая разница не работает (start_date-cancellation_date) в javascript.

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Javascript объекты даты нельзя сравнивать до тех пор, пока они не будут преобразованы в миллисекунды.

var now = new Date(); // create new date - today
var then = new Date(now.getDate()+5); // create new date that's now + 5 days (bad variable name, sry)
var nowAdj = now.getTime(); // now adjusted to milliseconds
var thenAdj = then.getTime(); // then adjusted to milliseconds
var differenceInDays = Math.round((thenAdj - nowAdj)/(1000*60*60*24)) // Subtract now from then and multiply the results by the magic formula to return milliseconds to days.

Редактировать: Немного убрано, "then" по-прежнему ужасное имя переменной;)

1 голос
/ 21 февраля 2020

Вы можете преобразовать даты в новые объекты даты и рассчитать разницу следующим образом:

        var date1 = new Date("2010-10-14");
        var date2 = new Date("2010-10-16 04:05:06");
        var timeDiff = Math.abs(date2.getTime() - date1.getTime());
        var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
        console.log(diffDays);
...