Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] time
mtskilla
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 17.01.2007

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


Witam

Mam problem.
Do bazy dodaje date w za pomocą czas TIMESTAMP. ( dodaje mi cos takiego (20100603021521))
Chciałbym zrobic cos co porównuje czas aktualny oraz czas dodany do bazy i np. wywalało mi nieaktualne rekordy z bazy.
np. po 24 godzinach od dodania.

problem w tym, ze jak pobieram sobie z bazy czas i odejmuje go od czasu aktualnego mam czas w sekundach.
jest jakas funkcja ktora pobierze czas odejmie go od czasu aktualnego i wyswietli mi czas normalnie?

jak to zrobic z czasem na przełomie dni?
(jak dodam czas do tabeli o 23 i o 1 bede chcial odjąc to mi wyjdzie na minusie..)

jak to zakombinowac?

Czy mógłby mnie ktoś nakierowac.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Najelepiej uzywaj czasu w formacie Unixa:
  1. $teraz=time();
. Dowolny string zawierajacy w sobie date/czas (nawet cos typu: "first monday next month") mozesz zamienic sobie na czas unixowy funckja strtotime. Tak wiec aby obliczyc roznice dat np. aby dowiedziec sie czy cos jest starsze niz 24h robisz tak:
  1. $teraz=time();
  2. $do_sprawdzenia='2010 06 03 2:23:14';
  3. $do_sprawdzenia=strtotime($do_sprawdzenia);
  4. //24h = 86400 sekund
  5. if($teraz-$do_sprawdzenia>86400){
  6. echo 'dane starsze niz 24h';
  7. }else{
  8. echo' dane nowsze niz 24h';
  9. }
  10.  
  11. //obliczenie roznicy czasow
  12. $roznica=$teraz-$do_sprawdzenia;
  13. //zamiana $roznica na godziny
  14. $roznica=$roznica/3600;
  15. //na minuty
  16. $roznica=$roznica/60;
  17. //na dni
  18. $roznica=$roznica/84600;
  19. //ITP. ITD.


Ten post edytował sadistic_son 3.06.2010, 07:27:51


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
#luq
post
Post #3





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


A dlaczego nie zrobić tego już na warstwie bazy?

dates
id | date

  1. SELECT *
  2. FROM dates
  3. WHERE TIMESTAMPDIFF( HOUR , NOW( ) , date ) <= -24


Poza tym, tak jak mówi @sadistic_son, przechowywanie czasu jako unix timestamp jest jak najbardziej okej i ułatwia operacje na nim


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
mtskilla
post
Post #4





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 17.01.2007

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


dzieki wielkie. teraz dodaje czas w funkcji unix timestamp i wszystko gra smile.gif

mam jeszcze jedno pytanie tak zeby nie zakladac nowego tematu.

mam petle

  1. for ($a=1; $w = mysql_fetch_array($result); ++$a) {
  2.  
  3. $cena=strip_tags($w['cena']);
  4. $suma=$cena*$ilosc;
  5. $suma=number_format($suma, 2);
  6. }


jak zrobic łączną sumę tych wszystkich sum?

Go to the top of the page
+Quote Post
bastard13
post
Post #5





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


  1. for ($a=1; $w = mysql_fetch_array($result); ++$a) {
  2. $cena=strip_tags($w['cena']);
  3. $suma+=number_format($cena*$ilosc, 2);
  4. }


--------------------
Go to the top of the page
+Quote Post
#luq
post
Post #6





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


A innej pętli niż for nie znamy? Po co ta a zmienna $a?


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
Daimos
post
Post #7





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


Cytat(sadistic_son @ 3.06.2010, 08:22:43 ) *
Najelepiej uzywaj czasu w formacie Unixa...

nigdy w zyciu, masz od tego formaty daty w bazie winksmiley.jpg a jak koniecznie chcesz pozniej sekundy, co tutaj jest zupelnie niepotrzebne, bo mozna zwyczajnie dzialac na datach w bazie
to:
UNIX_TIMESTAMP


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
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 Aktualny czas: 22.08.2025 - 03:23