Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyświetlanie daty
Forum PHP.pl > Forum > Przedszkole
szczabik
Witam chciałem zmienić date wyświetlania obecnie mam tak

  1. <?php
  2. ".showdate("%d.%m.%%H:%M:%S", $data['download_datestamp'])."
  3. ?>


I wyświetla mi datę tak 13.05.2008 14:55:15 a chciał bym zrobić aby wyświetlało się tak np. dodane 2 sekundy temu albo 30 min temu albo 2 dni temu wie ktoś tak to wykonać date w bazie mam zapisaną w formacie unixowy
szczabik
Może ktoś pomóc i powiedzieć co jest źle w tym kodzie bo nie chce działać

  1. <?php
  2. $wynik = getDiff($time);
  3. $time = time();[/size][/font]
  4.  
  5. [font="Times New Roman"][size="3"]function getMinutes($minut){
  6. switch($minut) {
  7. case 0: return 0; break;
  8. case 1: return 1; break;
  9. case ($minut >= 2 && $minut <= 4):
  10. case ($minut >= 22 && $minut <= 24):
  11. case ($minut >= 32 && $minut <= 34):
  12. case ($minut >= 42 && $minut <= 44):
  13. case ($minut >= 52 && $minut <= 54): 
  14. return "$minut minuty temu"; break;
  15. default: return "$minut minut temu"; break; }
  16. return -1;}function getDiff($timestamp){ $now = time();
  17. if ($timestamp > $now) {
  18. echo 'Podana data nie może być większa od obecnej.';
  19. return; } $diff = $now - $timestamp;
  20. $minut = floor($diff/60);
  21. $godzin = floor($minut/60);
  22. $dni = floor($godzin/24);
  23. if ($minut <= 60) {
  24. $res = getMinutes($minut);
  25. switch($res)  {
  26. case 0: return "przed chwilą";  
  27.  case 1: return "minutę temu";
  28.  default: return $res; } }
  29.  if ($godzin > 6 && $godzin < 24) {
  30.  return "Dzisiaj ".date("H:i:s", $timestamp); }
  31.  elseif ($godzin > 0 && $godzin < 24) {
  32.  $restMinutes = ($minut-(60*$godzin));
  33.  $res = getMinutes($restMinutes);
  34.  if ($godzin == 1) {
  35.  return "Godzinę temu ".$res; } else {
  36.  return "$godzin godzin temu ".$res; } }
  37. if ($godzin >= 24 && $godzin <= 48) {
  38. return "Wczoraj ".date("H:i:s", $timestamp); }
  39. switch($dni) { case ($dni < 7): 
  40. return "$dni dni temu, ".date("Y-m-d", $timestamp); break;
  41. case 7: return "Tydzień temu, ".date("Y-m-d", $timestamp); 
  42. break; case ($dni > 7 && $dni < 14): return "Ponad tydzień temu, ".date("Y-m-d", $timestamp); 
  43. break; case 14: return "Dwa tygodznie temu, ".date("Y-m-d", $timestamp); break;
  44. case ($dni > 14 && $dni < 30): return "Ponad 2 tygodnie temu, ".date("Y-m-d", $timestamp); 
  45. break; case 30: case 31: return "Miesiąc temu"; 
  46. break; case ($dni > 31): return date("Y-m-d", $timestamp); break; }
  47. return date("Y-m-d", $timestamp); }
  48. ?>
JoShiMa
Cytat(szczabik @ 26.05.2008, 13:02:37 ) *
Może ktoś pomóc i powiedzieć co jest źle w tym kodzie bo nie chce działać

A co to znaczy, że nie chce działać? Wysypuje się? Nie daje prawidłowych wyników?
szczabik
Właśnie o to chodzi że nic się niedziele nie ma żadnego blędu itp. Po prostu pusta strona nic się nie wyświetla
JoShiMa
A co Ci się ma wyświetlać? Może byś dał w trzeciej linii np echo "wynik $wynik "; żeby wiedzieć co Ci funkcja zwraca.

PS. Pozbądź się tej maniery zwiększania czcionek w swoich postach.
szczabik
Zrobiłem tak i się nic nie wyświetla



Znaczy data mi się wyświetla ale chodzi o to że nie wyświetla się kiedy została dodana czyli np. dodane 3 min temu , dodane wczoraj itp
JoShiMa
Powstawiaj sobie w różne warunki komendy wywietlające info np echo "teraz jestem w tym miejscu"; i będziesz wiedział jak Ci to po tych warunkach chodzi i łatwiej zrozumiesz co ten kod w ogóle robi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.