Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Odejmowanie czasu
Forum PHP.pl > Forum > Przedszkole
monter2313
  1. <?
  2.  
  3. if(file_exists("CONFIG/config.php")) require_once("CONFIG/config.php");
  4.  
  5. $time1=date("Y-m-d", mktime(0,0,0,$_POST[miesiac],$_POST[dzien],$_POST[rok]));
  6. $time2=date("Y-m-d", mktime(0,0,0,$_POST[miesiac1],$_POST[dzien1],$_POST[rok1]));
  7. $adres=$_POST['adres'];
  8. $telefon=$_POST['telefon'];
  9. $liczbaos=$_POST['liczba_osob'];
  10. $time = $time2 - $time1;
  11.  
  12. if(empty($adres) or empty($telefon) or empty($liczbaos))
  13. {echo ("<p class = \"error\">Wypełnij wszytskie pola!!!</p>");
  14. }
  15. else
  16. {
  17.  
  18. if(@!checkdate($_POST[miesiac],$_POST[dzien],$_POST[rok]))
  19. { echo ("<p class = \"error\">Podałes zła datę!!!</p>");
  20.  
  21. }else
  22.  
  23. {
  24. connect();
  25.  
  26. $zapytanie = "INSERT INTO ".PREFIX."rezerwacja (`ID_rezerwacji`,`Imie_rezerwacji`, `Nazwisko_rezerwacji`, `Adres_rezerwacji`, `Numer_tel_rezerwacji`, `Liczba_rezerwacji`,`Data_rezerwacji`,`Id_user_rezerwacji`,`Data_konca`,`Rezerwa
    cja_ile_dni`)
  27. VALUES ('', '".$_SESSION['imie']."', '".$_SESSION['nazwisko']."','".$adres."','".$telefon."','".$liczbaos."','".$time1."','".$_SESSION['id']."','".$time2."','".$time."')";
  28. $wynik = mysql_query($zapytanie) or die (mysql_error());
  29. echo("<p class = \"ok\">Dokonales rezerwacji</p>") ;
  30. echo ceil($time / 86400);
  31.  
  32. close();
  33. }
  34. }
  35.  
  36. ?>


Jak zrobic by poprawnie odejmował czas i zapisywał w bazie?
nospor
Czas się odejmuje sekundach czyli w tym co ci zwraca mktime a nie w Y-m-d (wynik date). Tekstu od tekstu nie odejmiesz. Odejmować możesz tylko liczby - wiesz, matematyka wink.gif
monter2313
własnie nie wiem jak to poprawnie zapisać. Dopiero raczkuje z php
nospor
przecież napisałem: wynik mktime a nie date. Co w tym jest niezrozumiałego?
zamiast: date("Y-m-d", mktime(0,0,0,$_POST[miesiac],$_POST[dzien],$_POST[rok]));
ma byc: mktime(0,0,0,$_POST[miesiac],$_POST[dzien],$_POST[rok]);

Będziesz miał wynik w sekundach. Chcąc różnice miec w dniach, będziesz musiał podzielic to jeszcze przez 86400
monter2313
Super działa:)

Teraz mam inne pytanko odnośnie tego przykładu.

Zmieniając date na mktime nie zapisuje $time1 i $time2 w bazie. Trzeba zmienic typ danych z Data na Int i bedzie dobrze?
nospor
Zostaw jako date, tylko przy wkładaniu przepuszczaj to przez date() jak robiłeś do tej pory. Jak ci usunąłem date() do wyliczania rożnicy. Nie kazałem ci usuwać znikąd indziej.
monter2313
  1. <?
  2.  
  3. if(file_exists("CONFIG/config.php")) require_once("CONFIG/config.php");
  4. $time3=date("Y-m-d", mktime(0,0,0,$_POST[miesiac],$_POST[dzien],$_POST[rok]));
  5. $time4=date("Y-m-d", mktime(0,0,0,$_POST[miesiac1],$_POST[dzien1],$_POST[rok1]));
  6. $time1=mktime(0,0,0,$_POST[miesiac],$_POST[dzien],$_POST[rok]);
  7. $time2=mktime(0,0,0,$_POST[miesiac1],$_POST[dzien1],$_POST[rok1]);
  8. $adres=$_POST['adres'];
  9. $telefon=$_POST['telefon'];
  10. $liczbaos=$_POST['liczba_osob'];
  11.  
  12. $time = (($time2 - $time1)/(60*60*24));
  13.  
  14. if(empty($adres) or empty($telefon) or empty($liczbaos))
  15. {echo ("<p class = \"error\">Wypełnij wszytskie pola!!!</p>");
  16. }
  17. else
  18. {
  19.  
  20. if(@!checkdate($_POST[miesiac],$_POST[dzien],$_POST[rok]))
  21. { echo ("<p class = \"error\">Podałes zła datę!!!</p>");
  22.  
  23. }else
  24.  
  25. {
  26. connect();
  27.  
  28. $zapytanie = "INSERT INTO ".PREFIX."rezerwacja (`ID_rezerwacji`,`Imie_rezerwacji`, `Nazwisko_rezerwacji`, `Adres_rezerwacji`, `Numer_tel_rezerwacji`, `Liczba_rezerwacji`,`Data_rezerwacji`,`Id_user_rezerwacji`,`Data_konca`,`Rezerwa
    cja_ile_dni`)
  29. VALUES ('', '".$_SESSION['imie']."', '".$_SESSION['nazwisko']."','".$adres."','".$telefon."','".$liczbaos."','".$time3."','".$_SESSION['id']."','".$time4."','".$time."')";
  30. $wynik = mysql_query($zapytanie) or die (mysql_error());
  31. echo("<p class = \"ok\">Dokonales rezerwacji</p>") ;
  32.  
  33. close();
  34. }
  35. }
  36.  
  37. ?>

Tak sobie z tym poradziłem. Chyba mało profesjonalnie wink.gif
Ogromnie dziękuje za pomoc. Na pewno dziś będę prosił o nią nie raz smile.gif
nospor
Pisz poprawnie
nie: $_POST[miesiac]
a: $_POST['miesiac']

Analogicznie reszta.


Włącz wyświetlanie wszystkich błędów. Masz to opisane tu:
Temat: Jak poprawnie zada pytanie

Skoro zamierzasz tu często o coś pytać, więc ten temat
Temat: Jak poprawnie zada pytanie
masz znać na pamięc i się do niego stosować. Ułatwisz i sobie i nam robote.
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.