Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dodawanie dni do daty
stefik4
post 18.12.2010, 23:28:08
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 1
Dołączył: 18.11.2007

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


Witam posiadam kod, który powinien dodawać 90 dni od danej daty pobranej z bazy i mam to tak rozwiązane:

  1. <?
  2. $dane = mysql_fetch_array(mysql_query('SELECT `do` FROM `usr` WHERE `id`="1"')); //w moim przypadku zraca 2011-03-13
  3.  
  4. // $_POST['dokiedy'] ma wartość 90.
  5.  
  6. $prr =date("Y-m-d");
  7.  
  8. if($dane[0]=="0000-00-00" OR $dane[0]<$prr){
  9. $do = date('Y-m-d', strtotime('+ '.$_POST['dokiedy'].' days'));
  10. echo "pusto, +".$_POST['dokiedy']."days: więc vip do: ".$do; // działa poprawnie
  11. } else {
  12.  
  13. $do = date($dane[0], strtotime('+ '.$_POST['dokiedy'].' days'));
  14. echo "pełno, ".$dane[0]."+".$_POST['dokiedy']." = ".$do; // zawraca: pełno, 2011-03-13+90 = 2011-03-13
  15. }
  16.  
  17. ?>


Męczę się z tym kodem i nie mogę sobie z nim poradzić ;/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Wicepsik
post 18.12.2010, 23:56:08
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. echo date('Y-m-d', strtotime('2011-03-13 +90 days'));


--------------------
Go to the top of the page
+Quote Post
bartoland
post 18.12.2010, 23:59:22
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 10.04.2010

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


Witam.

Nie wiem czy tym postem pomogę, ale zaproponuję inne podejście do sprawy.

Ja daty przechowuje w tej samej formie co zwraca funkcja time(); czyli liczba sekund od któregoś roku, nie pamiętam bo to nie istotne. Nie ma problemu by tą liczbę zamienić na date jest do tego odpowiednia funkcja nie pamiętam jak się nazywa, ale na pewno w dokumentacji php przy opisie time() znajdziesz tą funkcję.
Jeśli potrzebujesz do danej daty dodać 90 dni to wystarczy do tej wartości dodać tyle sekund ile trwa 90 dni. I po sprawie.

Ja bym to zrobił w taki sposób.
Go to the top of the page
+Quote Post
Pawel_W
post 19.12.2010, 00:06:25
Post #4





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat(bartoland @ 18.12.2010, 23:59:22 ) *
Ja bym to zrobił w taki sposób.

i właśnie to zrobił ~Wicepsik smile.gif

strtotime zamienia dzisiejszą datę +90 dni na format timestamp unixowy (liczba sekund od 1980r), a następnie podaje tą liczbę jako argument funkcji date, która to zamienia liczbę na dzień, miesiąc i rok sad.gif
Go to the top of the page
+Quote Post
stefik4
post 19.12.2010, 00:14:04
Post #5





Grupa: Zarejestrowani
Postów: 176
Pomógł: 1
Dołączył: 18.11.2007

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


Wicepsik, dzięki winksmiley.jpg
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: 14.06.2025 - 18:20