![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 13.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam w bazię datę dodania aukcji oraz czas (1 lub 2 lub 3 lub 4h) ile ta aukcja ma trwać. Teraz chcę wyświetlić ile pozostało do końca aukcji. Próbowałem próbować kilka działań i wyświetlić to w date() ale nie uzyskałem chcianego efektu. I chyba date() nie da się zrobić ile zostało do końca aukcji.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Najszybciej to pobierasz unix`owy czas zakończenia i obecny czas (IMG:style_emoticons/default/wink.gif) Odjmujesz od czasu zakończenia obecny czas, dzielisz to odpowiednio i otrzymujesz w zależności od potrzeby format daty (IMG:style_emoticons/default/wink.gif)
Do obecnej daty możesz dodać dni za pomocą funkcji strtotime(), a zamiana na czas unix wykorzystaj funkcję mktime() ;-) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 13.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Najszybciej to pobierasz unix`owy czas zakończenia i obecny czas (IMG:style_emoticons/default/wink.gif) Odjmujesz od czasu zakończenia obecny czas, dzielisz to odpowiednio i otrzymujesz w zależności od potrzeby format daty (IMG:style_emoticons/default/wink.gif) Do obecnej daty możesz dodać dni za pomocą funkcji strtotime(), a zamiana na czas unix wykorzystaj funkcję mktime() ;-) Ale jak mam pobrać ten unixowy? Zrobiłem tak:
Efekt: 31 23:34:28 - jest blisko, ale to jeszcze nie to |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
i teraz w zmiennej remaining masz ilość sekund (IMG:style_emoticons/default/wink.gif) Wystarczy to podzielić odpowiednio na dni godziny lata miesiące itd ;p |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 13.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
i teraz w zmiennej remaining masz ilość sekund (IMG:style_emoticons/default/wink.gif) Wystarczy to podzielić odpowiednio na dni godziny lata miesiące itd ;p Okey, a gdzie pobieranie z bazy danych? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 587 Pomógł: 190 Dołączył: 5.02.2011 Skąd: 64-800 Ostrzeżenie: (0%) ![]() ![]() |
Porównanie można zrobić w bazie porównując do NOW()
Poczytaj o funkcjach DATEDIFF(),TIMEDIFF(),TIME_TO_SEC() i innych podobnych Difference between two dates in MySQL Funkcje bazy danych MySQL 5.5 - Data i Czas |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kolega też dobrze podsunął drugi pomysł, ja sądząc po tagu "PHP" myślałem nad rozwiązaniem tylko w php`ie (IMG:style_emoticons/default/wink.gif)
Pobieranie z bazy danych? Jeśli $view['added'] to data dodania, a $view['endon'] no to dajesz tak:
tylko $remaining musisz podzielić żeby otrzymać dni, godizny, minuty , sekundy itd ;p |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 13.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Kolega też dobrze podsunął drugi pomysł, ja sądząc po tagu "PHP" myślałem nad rozwiązaniem tylko w php`ie (IMG:style_emoticons/default/wink.gif) Pobieranie z bazy danych? Jeśli $view['added'] to data dodania, a $view['endon'] no to dajesz tak:
tylko $remaining musisz podzielić żeby otrzymać dni, godizny, minuty , sekundy itd ;p Kurde. Teraz to czas stoi cały czas w miejscu ;/ To jest pojebane wszystko. W każdym rekordzie inaczej wychodzi. Zacznijmy od nowa. kolumna endon to czas trwania aukcji, wybierany z pola select. 86400 - 1 dzień 172800 - 2 dni 259200 - 3 dni 345600 - 4 dni Pole added zawiera datę dodania rekordu do bazy danych. Korzystam z tego:
i wyświetlam tym
i wszędzie jest inaczej |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 386 Pomógł: 7 Dołączył: 22.04.2010 Skąd: Ziemia Ostrzeżenie: (20%) ![]() ![]() |
przeanalizuj sobie to
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 13.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
przeanalizuj sobie to
przeanalizowałem, ale nic sie nie wyświetla. W końcu mi się udało.
Teraz pytanie czy za pomocą tego kodu uda się zamknąć aukcję jeśli czas się skonczy? |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 004 Pomógł: 9 Dołączył: 18.01.2011 Skąd: Siedlce Ostrzeżenie: (30%) ![]() ![]() |
oczywiście, że się da, robisz warunek, jeśli strtotime($czas)<0 to aktualizujesz w bazie jakąś komórkę np. aktywne=0
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 14:12 |