Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]czas
Forum PHP.pl > Forum > Przedszkole
cycofiasz
Witam, mam zrobiony pewien skrypcik (galeria) i oparty on jest na MySQL. W bazie obok takich danych jak tytył, opis i nazwa zdjęcia jest także czas dodania ozdjęcia zapisany w postaci znacznika czasu. Przy wyświetlaniu ów galerii nad zdjęciami pokazana jest data jego dodania (strftime).

I teraz chodzi mi o to, by przyjmowała ona postać: "dzisiaj 15:30" , "wczoraj 20:34", a jeżeli wcześniej niż wczoraj, to normalnie data.
Pytanie tylko jak w łatwy sposób to zrobić? jakie są Wasze sposoby?
jareeny
Do bazy przy wrzucaniu zdjęcia dajesz pełną date (dzień, miesiąc, rok no i czas), a przy wyświetlaniu porównujesz wynik z bazy z aktualną datą i za pomocą na przykład if'ów wyrzucasz te 'dzisiaj ....', 'wczoraj ...'
cycofiasz
Czyli po prostu pobieram z bazy znacznik czasu, zamieniam go na datę w formacie (dd-mm-yyyy) jednocześnie pobieram aktualną datę w tym samym formacie i porównuję je ze sobą. Jeżeli są identyczne to znaczy że będzie dzisiaj, a jak zrobić wczoraj? Wybrać tylko dzień i porównać? To by się psuło co miesiąc...
Marr
A czy wczoraj to nie jest w skrócie dzisiejsza data minus jeden dzień?
cycofiasz
Napisałem takie cuś, śmiesznie co prawda to wygląda, ale działa

  1. <?php
  2. if (strftime('%d %m %Y', $row['time']) == strftime('%d %m %Y', time())) {$czas = 'Dzisiaj '.strftime('%:%M', $row['time']);}
  3.    elseif (strftime('%m %Y', $row['time']) == strftime('%m %Y', time()))
  4.    {
  5.     if (strftime('%d', time()) - strftime('%d', $row['time']) == 1) {$czas = 'Wczoraj '.strftime('%:%M', $row['time']);}
  6.    }
  7.    if (!$czas) {$czas = strftime('%d %b %Y, %:%M', $row['time']);}/
  8. ?>
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.