• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Funkcja PHP źle działa

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
199 wizyt
pytanie zadane 19 lipca 2020 w PHP przez WiktroH Mądrala (6,550 p.)
zamknięte 20 lipca 2020 przez WiktroH

Cześć!

Napisałem funkcję, która miała sprawdzać, czy podana data miała już miejsce czy nie; miała zwracać 'true', jeśli tak i 'false' w przeciwnym wypadku. Niestety - zwraca cały czas tylko 'false'. Czy ktoś wie o co chodzi?

function if_time_before($day,$month,$year,$hour,$minute){
   $d=date('d');$m=date('m');$y=date('Y');$h=date('H');$i=date('i');
   if(
   ($day==$d&&$month==$m&&$year==$y&&$hour==$h&&$minute<=$i)||
   ($day==$d&&$month==$m&&$year==$y&&$hour<$h)||
   ($day<$d&&$month==$m&&$year==$y)||
   ($month<$m&&$year==$y)||
   ($year<$y))
   {
      return 'true';
   } else {
   return 'false';
   }
}

 

komentarz zamknięcia: Rozwiązanie w mojej odpowiedzi
komentarz 19 lipca 2020 przez tkz Nałogowiec (42,020 p.)

2 odpowiedzi

+1 głos
odpowiedź 19 lipca 2020 przez VBService Ekspert (256,320 p.)
<!DOCTYPE html>
<html lang="pl">
<head><meta charset="utf-8"></head>
<body>
<pre>
<?php

echo (if_time_before(date("2019-07-19 19:00")) ? 'true' : 'false') . PHP_EOL;
echo (if_time_before(date("2020-08-19 19:00")) ? 'true' : 'false') . PHP_EOL;
echo (if_time_before(date("2020-06-19 19:00")) ? 'true' : 'false') . PHP_EOL;
echo (if_time_before(date('Y-m-d H:i')) ? 'true' : 'false') . PHP_EOL;

function if_time_before($date) {
    $now = date('Y-m-d H:i');

    echo PHP_EOL;
    echo "data podana: " . $date . PHP_EOL;
    echo "data obecna: " . $now . PHP_EOL;

    $return = true; // $now == $date -> true
    if ($now < $date) { $return = false; }
    return $return;
}
?>
</pre>
</body>
</html>

 

+1 głos
odpowiedź 20 lipca 2020 przez WiktroH Mądrala (6,550 p.)

Dziękuję Wszystkim za pomoc. Poprawiony kod:

function if_time_before($datetime){
  $date=substr($datetime,0,10);
  $time=substr($datetime,11,5);
  if(
  ($date==date('Y-m-d')&&$time<=date('H:i'))||
  ($date<date('Y-m-d'))){
  return true;
  } else {
  return false;
  }
}

 

2
komentarz 20 lipca 2020 przez mordimer Mądrala (5,720 p.)

bazuj na obiektach wtedy poróœywanie dwóch dat jest bardzo proste w php:

<?php

$date1 = new DateTime('2020-07-19 12:56:16');

function if_time_before(DateTime $date){
    return $date < new DateTime;
}

var_dump(if_time_before($date1));

 

Podobne pytania

0 głosów
2 odpowiedzi 641 wizyt
pytanie zadane 28 marca 2018 w PHP przez mikoh81 Obywatel (1,260 p.)
0 głosów
2 odpowiedzi 352 wizyt
pytanie zadane 9 maja 2018 w PHP przez Browarnik123 Użytkownik (830 p.)
0 głosów
2 odpowiedzi 791 wizyt
pytanie zadane 3 lutego 2018 w C i C++ przez mn130496 Gaduła (3,530 p.)

93,187 zapytań

142,201 odpowiedzi

322,012 komentarzy

62,514 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2127p. - dia-Chann
  2. 2092p. - Łukasz Piwowar
  3. 2079p. - Łukasz Eckert
  4. 2037p. - Tomasz Bielak
  5. 2006p. - rucin93
  6. 2006p. - Michal Drewniak
  7. 2005p. - Łukasz Siedlecki
  8. 1964p. - CC PL
  9. 1946p. - Adrian Wieprzkowicz
  10. 1901p. - Mikbac
  11. 1744p. - rafalszastok
  12. 1734p. - Anonim 3619784
  13. 1586p. - Dawid128
  14. 1520p. - Marcin Putra
  15. 1480p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...