Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyświetlanie daty
szczabik
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


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

Ten post edytował szczabik 24.05.2008, 16:24:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


http://forum.php.pl/index.php?showtopic=76...++data++wczoraj
Go to the top of the page
+Quote Post
szczabik
post
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


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. ?>


Ten post edytował szczabik 26.05.2008, 14:03:45
Go to the top of the page
+Quote Post
JoShiMa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


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?
Go to the top of the page
+Quote Post
szczabik
post
Post #5





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


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

Ten post edytował szczabik 26.05.2008, 20:27:14
Go to the top of the page
+Quote Post
JoShiMa
post
Post #6





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


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.

Ten post edytował JoShiMa 27.05.2008, 08:48:39
Go to the top of the page
+Quote Post
szczabik
post
Post #7





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


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
Go to the top of the page
+Quote Post
JoShiMa
post
Post #8





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


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.
Go to the top of the page
+Quote Post

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: 24.08.2025 - 00:07