Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: data dzisiaj wczoraj źle wyświetla
Forum PHP.pl > Forum > PHP
aleks365
Witam
mam skrypt ale on źle wyświetla date np. jak dodam newsa bo to dotyczy newsów i dodam go dziś o 22.00 to działa dobrze wyświetla że dodano przed chwilą potem ile minut temu godzin itp ale jak na następny dzień patrzę o godzinie np. 12.00 to piszę dodano dzisiaj, 22.00 co jest nie tak z nim czemu tak wyświetla dopiero jak minie godzina 22.00 to wyświetla że dodano wczoraj

Tu skrypt
  1. <?php
  2. function getMinutes($minut)
  3. {
  4. switch($minut)
  5. {
  6. case 0: return 0; break;
  7. case 1: return 1; break;
  8. case ($minut >= 2 && $minut <= 4):
  9. case ($minut >= 22 && $minut <= 24):
  10. case ($minut >= 32 && $minut <= 34):
  11. case ($minut >= 42 && $minut <= 44):
  12. case ($minut >= 52 && $minut <= 54): return "$minut minuty temu"; break;
  13. default: return "$minut minut temu"; break;
  14. }
  15. return -1;
  16. }
  17.  
  18. function getDiff($timestamp)
  19. {
  20.  
  21. $now = time();
  22.  
  23. if ($timestamp > $now) {
  24. echo 'Podana data nie moze byc wieksza od obecnej.';
  25. return;
  26. }
  27.  
  28. $diff = $now - $timestamp;
  29.  
  30. $minut = floor($diff/60);
  31. $godzin = floor($minut/60);
  32. $dni = floor($godzin/24);
  33.  
  34. if ($minut <= 60) {
  35. $res = getMinutes($minut);
  36. switch($res)
  37. {
  38. case 0: return "Przed chwila";
  39. case 1: return "Minute temu";
  40. default: return $res;
  41. }
  42. }
  43.  
  44.  
  45. if ($godzin >= 6 && $godzin <= 24) {
  46. return "Dzisiaj, ".date("H:i", $timestamp)."";
  47. }
  48. elseif ($godzin > 0 && $godzin < 24) {
  49. $restMinutes = ($minut-(60*$godzin));
  50. $res = getMinutes($restMinutes);
  51. if ($godzin == 1) {
  52. return "Godzine temu";
  53. } else {
  54. return "$godzin godzin temu";
  55. }
  56. }
  57.  
  58. if ($godzin >= 24 && $godzin <= 48) {
  59. return "Wczoraj, ".date("H:i", $timestamp)."";
  60. }
  61.  
  62. if ($godzin >= 48 && $godzin <= 72) {
  63. return "Przedwczoraj, ".date("H:i", $timestamp)."";
  64. }
  65.  
  66. switch($dni)
  67. {
  68. case ($dni < 7):
  69. return "$dni dni temu"; break;
  70.  
  71. case 7:
  72. return "Tydzien temu"; break;
  73.  
  74. case ($dni > 7 && $dni < 14):
  75. return "Ponad tydzien temu"; break;
  76.  
  77. case 14:
  78. return "Dwa tygodznie temu"; break;
  79.  
  80. case ($dni > 14 && $dni < 21):
  81. return "Ponad dwa tygodnie temu"; break;
  82.  
  83. case 21:
  84. return "Trzy tygodznie temu"; break;
  85.  
  86. case ($dni > 21 && $dni < 30):
  87. return "Ponad trzy tygodnie temu"; break;
  88.  
  89. case 30: case 31:
  90. return "Miesiac temu"; break;
  91.  
  92. case ($dni > 31):
  93. return date("d.m.Y, H:i", $timestamp); break;
  94. }
  95. return date("d.m.Y, H:i", $timestamp);
  96. }
  97.  
  98. ?>


ta wyświetlam datę
  1. // To działa prawidłowo biggrin.gif
  2. getDiff($row['data'])
nospor
Nie kumam twojego zdziwienia.... sam dales warunek:
if ($godzin >= 6 && $godzin <= 24) {
return "Dzisiaj, ".date("H:i", $timestamp)."";
}
Wiec jak nie minie 24 godziny od dodania to ciagle jest DZISIAJ....
aleks365
a to faktycznie już naprawiłem i działa świetnie dzięki biggrin.gif
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.