<?php // v0.1 // d1 wieksza data, d2 mniejsza data (wczesniejsza)) function Date2 ($d1, $d2) { $Tmp = $d1 - $d2; $Podpis = ""; $out = $Tmp; // dla sekund if ($Tmp < 60) $Podpis = "sekund"; // dla minut if (($Tmp >= 60) && ($Tmp < 60*60)) { $Podpis = "minut"; $out = $Tmp / 60; } // dla godzin if (($Tmp >= 60*60) && ($Tmp < 60*60*24)) { $Podpis = "godzin"; $out = $Tmp / (60*60); } // dla dni if (($Tmp >= 60*60*24) && ($Tmp < 60*60*24*30)) { $Podpis = "dni"; $out = $Tmp / (60*60*24); } // dla miesiecy if ($Tmp >= 60*60*24*30) { $Podpis = "miesiecy"; $out = $Tmp / (60*60*24*30); } } // int mktime ( int $godzina, int $minuta, int $sekunda, int $miesiąc, int $dzień, int $ro
k [, int $letni/zimowy] ) ?>
<?php /* SPOSÓB UŻYCIA: $wynik = getDiff($time); $time = czas zwrócony przez funkcję time() */ function getMinutes($minut) { // j.pol switch($minut) { case 0: return 0; break; case 1: return 1; break; case ($minut >= 2 && $minut <= 4): case ($minut >= 22 && $minut <= 24): case ($minut >= 32 && $minut <= 34): case ($minut >= 42 && $minut <= 44): case ($minut >= 52 && $minut <= 54): return "$minut minuty temu"; break; default: return "$minut minut temu"; break; } return -1; } function getDiff($timestamp) { if ($timestamp > $now) { return; } $diff = $now - $timestamp; if ($minut <= 60) { $res = getMinutes($minut); switch($res) { case 0: return "przed chwilą"; case 1: return "minutę temu"; default: return $res; } } if ($godzin > 6 && $godzin < 24) { } elseif ($godzin > 0 && $godzin < 24) { $restMinutes = ($minut-(60*$godzin)); $res = getMinutes($restMinutes); if ($godzin == 1) { return "Godzinę temu ".$res; } else { return "$godzin godzin temu ".$res; } } if ($godzin >= 24 && $godzin <= 48) { } switch($dni) { case 30: case 31: return "Miesiąc temu"; break; } } ?>
<?php /* SPOSÓB UŻYCIA: $wynik = getDiff($time); $time = czas zwrócony przez funkcję time() */ function getMinutes($minut) { // j.pol switch($minut) { case 0: return 0; break; case 1: return 1; break; case ($minut >= 2 && $minut <= 4): case ($minut >= 22 && $minut <= 24): case ($minut >= 32 && $minut <= 34): case ($minut >= 42 && $minut <= 44): case ($minut >= 52 && $minut <= 54): return "$minut minuty temu"; break; default: return "$minut minut temu"; break; } return -1; } function getDiff($timestamp) { $timestamp = "2008-08-06 20:37:52"; if ($timestamp > $now) { return; } $diff = $now - $timestamp; if ($minut <= 60) { $res = getMinutes($minut); switch($res) { case 0: return "przed chwilą"; case 1: return "minutę temu"; default: return $res; } } if ($godzin > 6 && $godzin < 24) { } elseif ($godzin > 0 && $godzin < 24) { $restMinutes = ($minut-(60*$godzin)); $res = getMinutes($restMinutes); if ($godzin == 1) { return "Godzinę temu ".$res; } else { return "$godzin godzin temu ".$res; } } if ($godzin >= 24 && $godzin <= 48) { } switch($dni) { case 30: case 31: return "Miesiąc temu"; break; } } $wynik = getDiff($time); ?>
<?php /* SPOSÓB UŻYCIA: $wynik = getDiff($time); $time = czas zwrócony przez funkcję time() */ $timestamp = "2008-09-06 20:37:52"; function getMinutes($minut) { // j.pol switch($minut) { case 0: return 0; break; case 1: return 1; break; case ($minut >= 2 && $minut <= 4): case ($minut >= 22 && $minut <= 24): case ($minut >= 32 && $minut <= 34): case ($minut >= 42 && $minut <= 44): case ($minut >= 52 && $minut <= 54): return "$minut minuty temu"; break; default: return "$minut minut temu"; break; } return -1; } function getDiff($timestamp) { $timestamp = "2008-08-06"; if ($timestamp > $now) { return; } $diff = $now - $timestamp; if ($minut <= 60) { $res = getMinutes($minut); switch($res) { case 0: return "przed chwilą"; case 1: return "minutę temu"; default: return $res; } } if ($godzin > 6 && $godzin < 24) { } elseif ($godzin > 0 && $godzin < 24) { $restMinutes = ($minut-(60*$godzin)); $res = getMinutes($restMinutes); if ($godzin == 1) { return "Godzinę temu ".$res; } else { return "$godzin godzin temu ".$res; } } if ($godzin >= 24 && $godzin <= 48) { } switch($dni) { case 30: case 31: return "Miesiąc temu"; break; } } $wynik = getDiff($time); ?>
/* Źródło: <a href="http://forum.php.pl/index.php?showtopic=76721&pid=502507&mode=threaded&start=#entry502507" target="_blank">http://forum.php.pl/index.php?showtopic=76...rt=#entry502507</a> @ Powprowadzałem poprawki do kodu SPOSÓB UŻYCIA: $time = czas zwrócony przez funkcję time() $wynik = getDiff($time); */ /* * PHP port of Ruby on Rails famous distance_of_time_in_words method. * See <a href="http://api.rubyonrails.com/classes/ActionView/Helpers/DateHelper.html" target="_blank">http://api.rubyonrails.com/classes/ActionV...DateHelper.html</a> for more details. * * Reports the approximate distance in time between two timestamps. Set include_seconds * to true if you want more detailed approximations. * Źródło: <a href="http://pl2.php.net/manual/pl/function.time.php" target="_blank">http://pl2.php.net/manual/pl/function.time.php</a> */ function getDiff($from_time, $to_time = 0, $include_seconds = true) { if ($distance_in_minutes >= 0 and $distance_in_minutes <= 1) { if (!$include_seconds) { return ($distance_in_minutes == 0) ? 'mniej niż minutę temu' : 'minutę temu'; } else { if ($distance_in_seconds >= 0 and $distance_in_seconds <= 4) { return 'mniej niż 5 sekund temu'; } elseif ($distance_in_seconds >= 5 and $distance_in_seconds <= 9) { return 'mniej niż 10 sekund temu'; } elseif ($distance_in_seconds >= 10 and $distance_in_seconds <= 19) { return 'mniej niż 20 sekund temu'; } elseif ($distance_in_seconds >= 20 and $distance_in_seconds <= 39) { return 'pół minuty temu'; } elseif ($distance_in_seconds >= 40 and $distance_in_seconds <= 59) { return 'mniej niż minutę temu'; } else { return 'minutę temu'; } } } elseif ($distance_in_minutes >= 2 and $distance_in_minutes <= 44) { return $distance_in_minutes . ' min temu'; } elseif ($distance_in_minutes >= 45 and $distance_in_minutes <= 89) { return 'godzinę temu'; } elseif ($distance_in_minutes >= 90 and $distance_in_minutes <= 1439) { } elseif ($distance_in_minutes >= 1440 and $distance_in_minutes <= 2879) { return 'wczoraj'; } elseif ($distance_in_minutes >= 2880 and $distance_in_minutes <= 43199) { } elseif ($distance_in_minutes >= 43200 and $distance_in_minutes <= 86399) { return 'miesiąc temu'; } elseif ($distance_in_minutes >= 86400 and $distance_in_minutes <= 525599) { } elseif ($distance_in_minutes >= 525600 and $distance_in_minutes <= 1051199) { return 'rok temu'; } else { } } #------------------------------------------------------------------------------------- // drugi arg okresla czy wyswietlic czysty tekst bez html function data_rzymska($data, $html=0) { // wyświetla datę w formie 09 V 1990, 16:00 //przyjmowany format daty 2008-08-31 19:00:02 switch($miesiac) { case '01': $miesiac_rzymski = 'I'; break; case '02': $miesiac_rzymski = 'II'; break; case '03': $miesiac_rzymski = 'III'; break; case '04': $miesiac_rzymski = 'IV'; break; case '05': $miesiac_rzymski = 'V'; break; case '06': $miesiac_rzymski = 'VI'; break; case '07': $miesiac_rzymski = 'VII'; break; case '08': $miesiac_rzymski = 'VIII'; break; case '09': $miesiac_rzymski = 'IX'; break; case '10': $miesiac_rzymski = 'X'; break; case '11': $miesiac_rzymski = 'XI'; break; case '12': $miesiac_rzymski = 'XII'; break; default: $miesiac_rzymski = 'Błędny miesiąc'; } // jesli wywołamy funkcje bez dodatkowego parametru 1 to bedą sekundy mniejsza czcionka if($html == 0) { $sekundy_html = '<span class="small_text">'.$sekundy.'</span>'; } else { // natomiast jesli dodamy arg drugi o wartosci 1 to tekst bedzie czysty bez html'a $sekundy_html = $sekundy; } return $dzien.' '.$miesiac_rzymski.' '.$rok.', '.$godzina.':'.$minuty.':'.$sekundy_html; }
czynienia z wyświetlaniem daty publikacji artykułów, postów lub innych wpisów. <?php /** * Formatuje date do formatu: Przedwczoraj[, 13:15]; Ponad tydzień temu[, 2013-06-21] * * @version 1.0 * @author Piotr tlenex Hebda {@link <a href="http://tlenex.pl}" target="_blank">http://tlenex.pl}</a> * @copyright NIE usuwaj tego komentarza! (Do NOT remove this comment!) * * @param string $data_wejsciowa zalecana data w formacie ISO */ function formatujDate($data_wejsciowa, $show_date = true) { $ending_date = ""; $ending_time = ""; if ($okres > $now) { return "Podana data nie może być większa od obecnej."; } if ($show_date) { } $diff = $now - $okres; if ($minut <= 60) { switch($minut) { case 0: return "przed chwilą"; case 1: return "minutę temu"; case ($minut >= 2 && $minut <= 4): case ($minut >= 22 && $minut <= 24): case ($minut >= 32 && $minut <= 34): case ($minut >= 42 && $minut <= 44): case ($minut >= 52 && $minut <= 54): return "$minut minuty temu"; break; default: return "$minut minut temu"; break; } } $okres_wczoraj = $now-(60*60*24); $okres_przedwczoraj = $now-(60*60*24*2); if ($godzin > 0 && $godzin <= 6) { if ($godzin == 1) { return "Godzinę temu "; } else { if ($godzin >1 && $godzin<5) return "$godzin godziny temu"; if ($godzin >4)return "$godzin godzin temu"; } return "Dzisiaj".$ending_time; return "Wczoraj".$ending_time; return "Przedwczoraj".$ending_time; } switch($dni) { case ($dni < 7): return "$dni dni temu".$ending_date; break; case 7: return "Tydzień temu".$ending_date; break; case ($dni > 7 && $dni < 14): return "Ponad tydzień temu".$ending_date; break; case 14: return "Dwa tygodznie temu".$ending_date; break; case ($dni > 14 && $dni < 21): return "Ponad 2 tygodnie temu".$ending_date; break; case ($dni > 21 && $dni < 28): return "Ponad 3 tygodnie temu".$ending_date; break; case ($dni >= 28 && $dni < 32): return "Miesiąc temu"; break; } } if ($miesiecy > 0 && $miesiecy <= 12) { switch($miesiecy) { case 1: return "Miesiąc temu".$ending_date; break; case 2: case 4: return "$miesiecy miesiące temu".$ending_date; break; case 3: return "Ćwierć roku temu".$ending_date; break; case 6: return "Pół roku temu".$ending_date; break; case 12: return "Roku temu".$ending_date; break; default: return "$miesiecy miesiecy temu".$ending_date; break; } } if ($lata > 0) { if ($lata == 1) { return "Rok temu".$ending_date; return "$lata lat temu".$ending_date; return "$lata lata temu".$ending_date; } } } ?>