Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Porównywanie czasu
Forum PHP.pl > Forum > PHP
Mody23
Witam!

Arytmetycznie coś możemy w PHP porównać np. tak:

  1. $zmiennax = '1666';
  2. $zmiennay = '1555';
  3.  
  4. if ( $zmiennax < $zmiennay )
  5. costam


Może przykład niezbyt wyszukany, ale nie ważne.

Jak takie coś mam osiągnąć z czasem?

Powiedzmy, że ostatni post był napisany dzisiaj o 14:40, a pewien "bot" dodał posta dzisiaj o 15:30 i chcę aby w kolumnie ostatni post, nie było posta usera, tylko tego bota. I właśnie muszę porównać, czasowo, który post jest "świeższy" - czy post bota, czy post usera.

Jak to ma wyglądać?

  1. $postusera = $row['last_post'];
  2. $postbota = $row['post_bota'];
  3.  
  4. if ($postusera > $postbota )


Wiem, że nie tak, ale napisałem, abyście mnie lepiej zrozumieli.
karolrynio
http://php.net/manual/en/function.strtotime.php


  1.  
  2. if( strtotime( $data1 ) > strtotime( $data2 ) ) {
  3. echo $data1;
  4. } else {
  5. echo $data2;
  6. }
  7.  

Sephirus
Opcji jest baaardzo dużo... najprościej przekonwertować datę na timestamp (uniksowy znacznik czasu) i hula

Co prawda wydaje mi się że funckja strtotime() jest albo przestarzała albo coś tam trzeba z "locale" poustawiać ale najprościej:

  1. $postusera = $row['last_post'];
  2. $postbota = $row['post_bota'];
  3.  
  4. if (strtotime($postusera) > strtotime($postbota) )


strtotime() zwraca unixowy znacznik czasu czyli liczbę sekund od stycznia 1970 roku. Zatem im wiekszy tym data jest większa (w przyszłość)smile.gif

W ptzypdaku przykładu wyżej jeżeli $postusera jest datą przyszłą względem $postbota to warunek jest spełniony
Mody23
No i super, dziękuję smile.gif
Crozin
Obiekt DateTime ma przeciążone operatory porównania (<, >, <=, >=, ==) więc:
  1. if (new DateTime('today') > new DateTime('3 days ago')) {
  2.  
  3. }
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.