Wydobywanie ilości minut, godzin.. z obiektu Date

Odpowiedz Nowy wątek
2011-07-16 11:16
Ziombel
0

Mam kod:

data_nowosci_na_stronie = new Date(...).getTime();

I teraz chciałbym z niego wyciągnąć ile to sekund, dni, godzin itd. (tzn. np. "Ostatnia aktualizacja miała miejsce 2 lata, 20 minut i 13 sekund temu").

Jedyne co przychodzi mi do głowy to dzielenie tego wszystkiego (najpierw przez 1000 do sekund, potem przez 60 do minut itd.) i zapisywania wartosci poszczególnych jednostek czasu z dzielenia modulo.

Czy znacie może jakis lepszy sposób na osiągnięcie tego celu?

Pozostało 580 znaków

2011-07-16 14:03
0

Ja myślę że liczenie tego z dokładnością do sekundy jest bez sensu, bo i rok ma nierówną ilość dni, i miesiąc ma nierówną ilość dni, i doba ma nierówną ilość sekund.

Pozostało 580 znaków

2011-07-16 14:15
Ziombel
0

Załóżmy że dla Klienta sens istnieje. Jak to zrobić?

Może bardziej obrazowo: to coś jak mierzenie odległości między miastami w milimetrach. - Azarien 2011-07-16 17:25

Pozostało 580 znaków

2011-07-16 15:27
o_O
0

Sugerowałbym zacząć od wpisania w Google: "calculating the difference between two dates in javascript" i zdziwienia się że mimo wszystko są ludzie którzy mieli już ten "problem" w przeszłości.

Pozostało 580 znaków

2011-07-16 15:36
Ziombel
0

Wszystkie przykłady jakie znalazłem prowadzą do:
variable = czas_w_milisekundach / one_day_milisecs
Natomiast nie o takie coś mi chodzi

Pozostało 580 znaków

2011-07-16 16:25
o_O
0

wroar.
http://psoug.org/snippet/Java[...]nce-between-two-dates_116.htm
Specjalnie dla Ciebie poprawiłem parę wad:

function timeDifference(laterdate,earlierdate) {
    var difference = laterdate.getTime() - earlierdate.getTime();

    var daysDifference = Math.floor(difference/1000/60/60/24);
    difference -= daysDifference*1000*60*60*24

    var hoursDifference = Math.floor(difference/1000/60/60);
    difference -= hoursDifference*1000*60*60

    var minutesDifference = Math.floor(difference/1000/60);
    difference -= minutesDifference*1000*60

    var secondsDifference = Math.floor(difference/1000);

 document.write('difference = ' + daysDifference + ' day/s ' + hoursDifference + ' hour/s ' + minutesDifference + ' minute/s ' + secondsDifference + ' second/s ');
 }

Jeżeli natomiast marzy Ci się to uformowane w miesiące i lata to po prostu... podziel modulo przez ilość dni w roku, apotem rpzez ilość dni w kolejnych miesiącach tego co zostanie.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0