Loading:


Data w formie - dzisiaj, wczoraj, minute , godzine, dni temu

Funkcja pobiera datę w formie  RRRR-MM-DD HH:MM:SS np.(2009-09-19 20:44:53) i zwraca ją w formie np. 29 dni temu, 20:45

Ta funkcja zwraca wynik dla daty nie większej niż 30 dni.

Podobny artykuł : Różnica między dwiema datami

 

 



Napisz Artyku³

Listing


<?php
function czas_relatywny( $data_wejsciowa ) {

        $roznica_czasu = time() - strtotime( $data_wejsciowa );
        if( $roznica_czasu < 0 ) { die(); }
        $okres = array('sekund', 'minut', 'godzin', null, 'dni');
        $dlugosc = array(60,60,24,3,31);

        for($j = 0; $roznica_czasu >= $dlugosc[$j]; $j++) { if( !isset($dlugosc[$j]) ) { break; } if( $j<3) { $roznica_czasu /= $dlugosc[$j]; } }
        $roznica_czasu = round(abs($roznica_czasu));

        switch( $j ) {
                case 0: case 1: case 2:
                        switch( $roznica_czasu ) {
                                case 1: $okres[$j] .= 'a'; break;
                                case 2:case 3:case 4:case 22:case 23:case 24:case 32:case 33:case 34:case 42:case 43:case 44:case 52:case 53:case 54: $okres[$j] .= 'y'; break;
                        } break;
                case 3:
                        switch( $roznica_czasu ) {
                                case 1: $okres[$j] = 'wczoraj'; break;
                                case 2: $okres[$j] = 'przedwczoraj'; break;
                                case 3: $j=4; break;
                        } break;
        }

        if( $j==0 or $j==1 or $j==2 or $j == 4 ) { return $roznica_czasu.' '.$okres[$j].' temu, '.date("H:i",strtotime( $data_wejsciowa )); }
        elseif( $j == 3 ) { return $okres[$j].', '.date("H:i",strtotime( $data_wejsciowa )); }
        elseif( $j == 5 ) { return date("d-m-Y H:i",strtotime( $data_wejsciowa )); }
}

?>

<?php

//Przykłady

echo czas_relatywny( "2009-09-19 20:44:53") ).'<br/>';
echo czas_relatywny( date( "Y-m-d H:i:s", strtotime("-1 minute")) ).'<br/>';
echo czas_relatywny( date( "Y-m-d H:i:s", strtotime("-1 day")) ).'<br/>';
echo czas_relatywny( date( "Y-m-d H:i:s", strtotime("-29 days")) ).'<br/>';
echo czas_relatywny( date( "Y-m-d H:i:s", strtotime("-30 days")) ).'<br/>';
echo czas_relatywny( date( "Y-m-d H:i:s", strtotime("-31 days")) ).'<br/>';
echo czas_relatywny( date( "Y-m-d H:i:s", strtotime("-1 year")) ).'<br/>';

?>




Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
dzięki
autor: lfs_driver | 12815 | 2012-04-15 11:45:13


    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2020 v.1.5 | design: diviXdesign & rainbowcolors