Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Datetime a aktualna data
Forum PHP.pl > Forum > Przedszkole
bahh
Witam,

chcę zrobić moduł artykułow gdzie zamiast wyświtlenia normalnej daty dodania artykułu wyświetliłoby ile czasu minęło już od czasu dodania tzn z pola bazy danych datetime 2013-12-16 22:09:45 wyświetliło - 3 dni temu, gdyby artykuł był dodany 20 minut temu, wyświetliło - dodano 20 minut temu.

Wiem że można robić to na zasadzie ifów że sprawdzam czy jest aktualny dzień, to sprawdzi godzine, jeśli ta sama to minute i tak dalej. Jest jakaś prostrza i szybsza metoda czy tylko taka pozostaje?
gitbejbe
odrobina chęci i jakimś zapewne cudem internet staje się wysypiskiem gotowców

http://www.mnk.pl/post/roznica-czasu-pomie...oma-datami.html

trochę więcej samodzielności
bahh
za ten czas już sam naskrobałem funkcję na ifach, nie wiem czy będzie wyraźna różnica w szybkości?

  1. if (date_format($data, 'Y') == date("Y"))
  2. {
  3. if (date_format($data, 'm') == date("m"))
  4. {
  5. if (date_format($data, 'd') == date("d"))
  6. {
  7. if (date_format($data, 'H') == date("H"))
  8. {
  9. if (date_format($data, 'i') == date("i"))
  10. {
  11. if (date_format($data, 's') < 2)
  12. $dodano = date_format($data, 's').' sekunde temu';
  13. elseif (date_format($data, 's') >= 2 && date_format($data, 's') < 5)
  14. $dodano = date("s")-date_format($data, 's').' sekundy temu';
  15. else
  16. $dodano = date("s")-date_format($data, 's').' sekund temu';
  17. } else {
  18. if (date_format($data, 'i') < 2)
  19. $dodano = date("i")-date_format($data, 'i').' minute temu';
  20. elseif (date_format($data, 'i') >= 2 && date_format($data, 'i') < 5)
  21. $dodano = date("i")-date_format($data, 'i').' minuty temu';
  22. else
  23. $dodano = date("i")-date_format($data, 'i').' minut temu';
  24. }
  25. } else {
  26. if (date_format($data, 'H') < 2)
  27. $dodano = date("H")-date_format($data, 'H').' godzine temu';
  28. elseif (date_format($data, 'H') >= 2 && date_format($data, 'H') < 5)
  29. $dodano = date("H")-date_format($data, 'H').' godziny temu';
  30. else
  31. $dodano = date("H")-date_format($data, 'H').' godziny temu';
  32. }
  33. } else {
  34. if (date_format($data, 'd') < 2)
  35. $dodano = date("d")-date_format($data, 'd').' dzień temu';
  36. else
  37. $dodano = date("d")-date_format($data, 'd').' dni temu';
  38. }
  39. } else {
  40. if (date_format($data, 'm') < 2)
  41. $dodano = date("m")-date_format($data, 'm').' miesiąc temu';
  42. elseif (date_format($data, 'm') >= 2 && date_format($data, 'm') < 5)
  43. $dodano = date("m")-date_format($data, 'm').' miesiące temu';
  44. else
  45. $dodano = date("m")-date_format($data, 'm').' miesięcy temu';
  46. }
  47. } else {
  48. if (date_format($data, 'Y') < 2)
  49. $dodano = date("Y")-date_format($data, 'Y').' rok temu';
  50. elseif (date_format($data, 'Y') >= 2 && date_format($data, 'm') < 5)
  51. $dodano = date("Y")-date_format($data, 'Y').' lata temu';
  52. else
  53. $dodano = date("Y")-date_format($data, 'Y').' lat temu';
  54. }
nospor
Cytat
nie wiem czy będzie wyraźna różnica w szybkości?
Zacznijmy od tego ze twoj skrypt dziala zle.....

Ktos dodal arta 2013-12-31 23:00
a ktos inny wejdzie na arta 2014-01-01 01:00
i pomimo, ze uplynela zaledwie godzina, to twoj kod pokaze, ze art byl napisany rok temu....
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.