Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Różnica stringów, da sie wogóle?
IMP
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 20.08.2007

Ostrzeżenie: (0%)
-----


Siema

Kolejny moj topic z seri jestem n00bem i zadaje glupie pytania (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
Zazna od początku:

Napisalem proste forum i chcialbym wprowadzic edycje postow w zaleznosci od daty ich umieszczenia. W bazie danych mam pole `data` VARCHAR(19) a data ma postac RRRR:MM:DD GG:MM:SS
Potrzebuje wiedziec jaka roznica czasu jest pomiedzy opublikowaniem posta a data obecna.

Ktos ma jakies propozycje?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Misiur66
post
Post #2





Grupa: Zarejestrowani
Postów: 170
Pomógł: 11
Dołączył: 2.03.2008
Skąd: Lublin

Ostrzeżenie: (10%)
X----


Kod
function data2minelo(data){
    //stworz obiekty na date pobrana i aktualna
    var teraz = new Date();
    var wydarzenie = new Date();
    try{
    //dzieli na tablice YYYY-MM-DD i HH:MM:SS
    var dataiczas = data.split(' ');
    //rodziel date na date i czas
    var t_data = dataiczas[0].split('-');
    var t_czas = dataiczas[1].split(':');
    
    //ustaw date i czas wydarzenia
    wydarzenie.setFullYear(t_data[0]);
    wydarzenie.setMonth(t_data[1] - 1);
    wydarzenie.setDate(t_data[2]);
    wydarzenie.setHours(t_czas[0]);
    wydarzenie.setMinutes(t_czas[1]);
    wydarzenie.setSeconds(t_czas[2]);
    }
    catch(e){
        return;
    }
    //oblicz roznice w czasach pomiedzy teraz a wprowadzona data
    var roznica = (teraz.getTime() - wydarzenie.getTime()) / 1000;
    //zapisuje ile minelo czasu
    //jednostki w sekundach
    var minuta = 60;
    var godzina = 60 * 60;
    var dzien = 60 * 60 * 24;
    //oblicza ile minelo dni, godzin, minut, sekund
    var m_dni = Math.floor(roznica/dzien);
    var m_godzin = Math.floor((roznica-m_dni*dzien)/godzina);
    var m_minut = Math.floor((roznica-m_dni*dzien-m_godzin*godzina)/minuta);
    var m_sekund = Math.floor((roznica-m_dni*dzien-m_godzin*godzina-m_minut*minuta));
    //jezeli wynik byl nie dawniej niz 3 dni i nie wczesniej niz 1
    if(m_dni > 1 && m_dni <= 3){
        return m_dni + 'dni temu';
    }
    //jezeli to bylo dzisiaj
    else if(m_dni === 0){
        //jezeli jeszcze nie minela godzina
        if(m_godzin === 0){
            if(m_minut === 0){
                return m_sekund + 's temu';
            }
            else{
                return m_minut + 'm ' + m_sekund + 's temu';
            }
        }
        else{
            return m_godzin + 'h ' + m_minut + 'm temu';
        }
    }
    return t_data[2] + '.' + t_data[1] + '.' + t_data[0] + ' ' + t_czas[0] + ':' + t_czas[1];
}

Ja stosuje JS do takich spraw. Spróbuj i ty!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 21:32