Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Operacje na datach
Forum PHP.pl > Forum > Przedszkole
kozakis05
Witam. Mam pytanie o odejmowanie dat. Da się to jakoś prosto zrobić? Chodzi mi o to, że mam np. datę wypożyczenia: 20-01-2010 i termin zwrotu: 20-02-2010. Jeżeli książka nie zostanie oddana (data zwrotu jest pusta) w terminie to jak obliczyć, o ile dni termin jest aktualnie przekroczony? Można sprawdzać, czy data zwrotu jest pusta i jeżeli tak to wtedy sprawdzać, czy aktualna data (np. funkcja DATE()) jest większa od terminu zwrotu i jak tak jest to wtedy odejmować od aktualnej daty termin zwrotu. Tylko jak to zrobić w PHP?
skowron-line
date_add
kozakis05
Cytat(skowron-line @ 20.01.2010, 16:45:51 ) *


Dzięki! Zapomniałem o tej funkcji. A jak można odejmować daty? Znalazłem funkcję DATE_SUB, ale ona umożliwia odejmowanie osobno np. dni, godzin, miesięcy i lat, a mi zależy na odejmowaniu dat, tak aby wynik był różnicą w dniach np. (2006-05-01)-(2006-05-03) = 2 dni. Da się tak zrobić?
skowron-line
date_diff
kozakis05
Cytat(skowron-line @ 20.01.2010, 17:13:08 ) *
date_diff


Ta funkcja chyba nie umożliwia bezpośredniego odejmowania dat? Muszę zamieniać na sekundy i dopiero wtedy odejmować? Ja chcę wczytywać karę z innej tabeli i mnożyć ją razy ilość dni po terminie. Jak można to zrobić? Z dodawaniem dni do daty za pomocą DATE_ADD nie było problemu, ale z odjęciem dat w taki sposób, żeby wynikiem była różnica w dniach mam problem. Mógłby ktoś podać przykład jak to zrobić? Będę bardzo wdzięczny.
Tajgeer
Może ten przykład? http://codecalm.pl/advises/18,jak-obliczyc...y-dwiema-datami
skowron-line
Cytat(kozakis05 @ 20.01.2010, 18:16:51 ) *
Ta funkcja chyba nie umożliwia bezpośredniego odejmowania dat?

A sprawdziłeś chociaż jak działa ta funkcja questionmark.gif
datediff
timediff
celbarowicz
[PHP] pobierz, plaintext
  1. <?php
  2. $data_wypozycenia = "2009-09-01";
  3. $data_zwrotu = "2009-10-01"; //
  4. echo $data_zwrotu ; echo'<br>';
  5. echo $data_wypozycenia ; echo'<br>';
  6. $roznica = (strtotime($data_zwrotu) - strtotime($data_wypozycenia)) / (60*60*24);
  7. echo "Różnica= ".$roznica." dni ".'';
  8. //sprawdź w dla terminów związanych ze zmianą czasu wiosna , jesień -terminy podane są na wiki
  9. //testuj bo nie sprawdziłem
  10. ?>
[PHP] pobierz, plaintext
//jeśli daty jest pusta to pobierz obecną datę date("Y-m-d") w miejsce daty zwrotu
kozakis05
Cytat(celbarowicz @ 21.01.2010, 11:17:29 ) *
[PHP] pobierz, plaintext
  1. <?php
  2. $data_wypozycenia = "2009-09-01";
  3. $data_zwrotu = "2009-10-01"; //
  4. echo $data_zwrotu ; echo'<br>';
  5. echo $data_wypozycenia ; echo'<br>';
  6. $roznica = (strtotime($data_zwrotu) - strtotime($data_wypozycenia)) / (60*60*24);
  7. echo "Różnica= ".$roznica." dni ".'';
  8. //sprawdź w dla terminów związanych ze zmianą czasu wiosna , jesień -terminy podane są na wiki
  9. //testuj bo nie sprawdziłem
  10. ?>
[PHP] pobierz, plaintext
//jeśli daty jest pusta to pobierz obecną datę date("Y-m-d") w miejsce daty zwrotu



Wczoraj poradziłem sobie z tym problemem w podobny sposób i zapomniałem napisać, ale dzięki.


Dziękuję za wszystkie odpowiedzi. Problem rozwiązany. smile.gif
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.