Преобразование разницы временных меток UNIX в минуты

У меня есть 2 даты, которые я конвертирую в временную метку UNIX - дату начала и дату подтверждения. Я вычитаю одно из другого и получаю такие числа:

-12643, 0, 3037, 1509, -3069

По сути, мне нужно получить разницу между двумя датами в минутах, но я не знаю, как преобразовать ее в минуты. Конечный вывод должен быть примерно таким: -25, 13, 155


person abpetkov    schedule 30.07.2013    source источник
comment
эм, я думаю, что я что-то пропустил. временные метки unix по определению измеряются в секундах. так минут $x/60..?   -  person Owen Beresford    schedule 31.07.2013


Ответы (3)


Даны две временные метки UNIX: a, b; вы можете рассчитать разницу между ними в минутах следующим образом:

var a = 1377005400000; //2013-07-20 15:30
var b = 1377783900000; //2013-07-29 15:45 

var dateA = new Date(a);
var dateB = new Date(b);

var dayRelativeDifference =   dateB.getHours()*60 + dateB.getMinutes()
                            - dateA.getHours()*60 - dateA.getMinutes();
//  dayRelativeDifference will be 15

var absoluteDifference    = (b-a)/60
//  absoluteDifference will be 12975000

Также загляните на http://www.w3schools.com/jsref/jsref_obj_date.asp

person Damiaan Dufaux    schedule 30.07.2013

Как вы получили исходные цифры? Я считаю, что стандартные метки времени Unix указаны в секундах, поэтому вы должны разделить их на 60, чтобы получить минуты. Однако Date.now() в JavaScript, например, возвращает миллисекунды, поэтому вам нужно разделить на 60 000.

person Kamala    schedule 30.07.2013

Вам просто нужно разделить на 60. У вас уже есть разница между двумя временными метками, поэтому ни одна из приведенных выше дат не требуется:

var diffs = new Array(-12643, 0, 3037, 1509, -3069);
for (var i = 0; i < diffs.length; i++)
    document.write(diffs[i] % 60);
person NobleUplift    schedule 30.07.2013