Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sprawdzanie czasu
Maciek316
post 11.06.2012, 15:48:27
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


Czesc,
Mam problem z odczytywaniem i sprawdzaniem pozostałego czasu.
Zrobiłem skrypt zapisujący ilość dni w tabeli np 21 * 86400.
I teraz chce odczytać, np. pozostało ci 21 dni do końca...
Jak to zrobić?
Go to the top of the page
+Quote Post
!*!
post 11.06.2012, 15:54:30
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


aktualny czas - czas z bazy = czas jaki pozostał date strtotime

Ten post edytował !*! 11.06.2012, 16:03:19


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Maciek316
post 11.06.2012, 16:12:29
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


czyli coś takiego?:
gracz['czas_misji'] - date("H:i:s",time()) = ? Tego nie rozumiem biggrin.gif
Go to the top of the page
+Quote Post
!*!
post 11.06.2012, 16:14:05
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Mniej więcej, chociaż nie wiem po co w date() potrzebny Ci time()... zobacz tu http://webmade.org/porady/data-php.php


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
johny_s
post 11.06.2012, 16:23:13
Post #5





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


http://www.php.net/manual/pl/datetime.diff.php
Go to the top of the page
+Quote Post
Maciek316
post 17.06.2012, 15:39:03
Post #6





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


Poczytałem trochę i zrobiłem tak:
  1. $time = query("SELECT time FROM sponsor WHERE id_s=".$_GET['s']." LIMIT 1");
  2. $czas = time();
  3. $sponsor = $czas + ($time['time'] * 86400);
  4. query("UPDATE users SET sponsor_czas=".$sponsor.", sponsor_id=".$_GET['s']." WHERE user=".$player['user']." LIMIT 1");

i ładnie zapisuje czas do bazy danych, lecz po sprawdzeniu ile zostało czasu do końca sponsora, ciągle się wyświetla informacja że już się czas skończył.
  1. if($sponsor > $czas){
  2. echo "coś ala odliczanie";
  3. }
  4. else
  5. {
  6. query("UPDATE users SET sponsor_czas='0', sponsor_id=-1 WHERE user=".$player['user']." LIMIT 1");
  7. echo 'Skończył się twój sponsoring!</br>
  8. }

Ciągle się wyświetla else...

refreeeeesh
Go to the top of the page
+Quote Post
irmidjusz
post 18.06.2012, 02:43:35
Post #7





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


Skoro zawsze wykonuje się kod z else, to znaczy, że $sponsor <= $czas, a to znaczy, że ($time['time'] * 86400) <= 0, a to może znaczyć, że $time['time'] jest liczbą równą 0, lub jest liczbą mniejszą od 0, lub nie jest liczbą, co daje 0 w wyniku rzutowania na typ int podczas mnożenia.

A co to za funkcja query()? smile.gif

Ten post edytował irmidjusz 18.06.2012, 02:46:58


--------------------
there is much to be learned
Go to the top of the page
+Quote Post
Maciek316
post 18.06.2012, 13:38:51
Post #8





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


Oj, już wiem co było problemem biggrin.gif
  1. if($sponsor > $czas){

a przecież czas zapisywałem do innej zmiennej biggrin.gif
W każdym razie, teraz już działa.
A i jeszcze jedno jakim działaniem mogę osiągnąć żeby czas był przeliczany na dni.
  1. time() + (21 * 86400)

jeśli podziele potem przez 86400 to zamiast 21 wyjdzie mi ponad 1500 ze względu na time().
Go to the top of the page
+Quote Post
zielu001
post 19.06.2012, 20:12:20
Post #9





Grupa: Zarejestrowani
Postów: 87
Pomógł: 3
Dołączył: 15.08.2009

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


  1. date('j',time() + (21 * 86400));


Poczytaj o time(); , date(); i czytelności kodu ..

Ten post edytował zielu001 19.06.2012, 20:14:07


--------------------
"Zło do triumfu potrzebuje tylko tego, aby dobrzy ludzie nic nie robili"
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:48