Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Operacje na datach, Odejmowanie dat, dodawanie dni do dat
kozakis05
post 20.01.2010, 16:37:00
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.01.2010

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


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?


Ten post edytował kozakis05 20.01.2010, 17:02:41
Go to the top of the page
+Quote Post
skowron-line
post 20.01.2010, 16:45:51
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


date_add


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
kozakis05
post 20.01.2010, 17:08:04
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.01.2010

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


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ć?

Ten post edytował kozakis05 20.01.2010, 17:08:40
Go to the top of the page
+Quote Post
skowron-line
post 20.01.2010, 17:13:08
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


date_diff


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
kozakis05
post 20.01.2010, 18:16:51
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.01.2010

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


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.

Ten post edytował kozakis05 20.01.2010, 18:19:17
Go to the top of the page
+Quote Post
Tajgeer
post 20.01.2010, 18:20:38
Post #6





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Może ten przykład? http://codecalm.pl/advises/18,jak-obliczyc...y-dwiema-datami
Go to the top of the page
+Quote Post
skowron-line
post 21.01.2010, 09:30:02
Post #7





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


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


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
celbarowicz
post 21.01.2010, 11:17:29
Post #8





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


[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


Ten post edytował celbarowicz 21.01.2010, 11:23:48
Go to the top of the page
+Quote Post
kozakis05
post 21.01.2010, 13:32:50
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.01.2010

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


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
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 Wersja Lo-Fi Aktualny czas: 18.05.2025 - 05:53