Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Odliczanie czasu
Greg0
post
Post #1





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

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


Witam ma dziwny problem, którego kompletnie nie rozumiem.
Konkretnie mam skrypt wyświetlający ilość czasu jaka pozostała.

  1. <?php
  2. $date = date(U);
  3. $s = mysql_query("UPDATE `".PREFIX."users` SET user_timerest='$date' WHERE user_id='$id'"); 
  4. $odpoczynek = ($date-(60*5));
  5. $czas = ($stat['user_timerest'] - $odpoczynek);
  6. $zostalo = date('H:i:s', $czas);
  7. <table class=center>
  8. <tr>
  9. <td align=center>
  10. $date Swoje $odpoczynek siły $czas zregenerujesz za $zostalo</span>
  11. </td>
  12. </tr>
  13. </table>";
  14. ?>

I wychodzi z tego 300 sekund. Więc powinno wyświetlać 00:05:00 i odliczać w dół. Niestety niewiadomo skąd wzięła mi się jedna godzina i pokazuje 01:05:00 nie mam pojęcia dlaczego. Pewnie mam gdzieś głupi błąd, którego nie umiem wyłapać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Greg0
post
Post #2





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

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


Ad.1 i 2 coś mi wygląda że nie możesz mi pomóc bo umiesz to gorzej niż ja. $s można pominąć bo skopiowałem to nieświadomie w polu user_timerest w bazie mam czas w sekundach jak to robi time ale za pomocą date bo date nie pobiera czasu z komputera oglądającego stronę.
Ad.3 $date('U') to to samo co time() odsyłam do http://www.php.net/manual/pl/function.date.php

A chodzi o to że w bazie danych mam czas w którym użytkownik wszedł na stronę i pobierając ją z bazy danych (nie widze potrzeby dawania tu połączenia z bazą ani wywołań select z innych plików) tworzę tym różnicę(sama matematyka):
  1. <?php
  2. $odpoczynek = ($date-(60*5)); //czas minus 5 minut
  3. $czas = ($stat['user_timerest'] - $odpoczynek); //przykład liczb na dole
  4. $zostalo = date('H:i:s', $czas); //zamieniam go na godziny:minuty:sekundy
  5. ?>

co daje mi czas odliczany w dół od momentu wejścia na te stronę (w tym wypadku jest to 5minut)
przykład
  1. <?php
  2. $czas = (1203698065 - 1203697765) //daje to 300
  3. $zostalo = date('H:i:s', 300); //powinno dać 00:05:00
  4. ?>

niestety 00:05:00 nie wyświetla zamiast tego dodaje jeszcze jedną godzinę 01:05:00

Ten post edytował Greg0 22.02.2008, 17:43:38
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 04:16