Преобразувайте разликата в клеймото на UNIX в минути

Имам 2 дати, които конвертирам в UNIX timestamp - начална дата и дата на потвърждение. Изваждам едно от друго и получавам числа като тези:

-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