Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Operacje na datach (PHP5)
seba22
post
Post #1





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Witam Państwa,

Mam uprzejme zapytanie czy ktoś był by mi w stanie pomóc.
Pracuję nad prostym skryptem i potrzebuję dowiedzieć się w jaki sposób mogę działać na datach w PHP.

Tak więc pobieram sobie z PHP aktualną datę.


$obecna_data = date("Y-m-d H:i");


w związku z czym dostaję coś mniej więcej takiego:

$data = "2008-07-25 09:15";



Teraz, chciał bym wykonać zapytanie do serwera MYSQL, i powiedzieć mu że użytkownik zarejestrował subskrypcję poprawnie, a czas jej trwania będzie wynosić przyszłe 30 dni !

W związku z czym utworzyłem na serwerze MYSQL 2 pola, dataaktywacji datadeaktywacji.

W dataaktywacji wprowadzam aktualną datę -> $obecna_data = date("Y-m-d H:i");

i w tym momencie wykonania skryptu, chciał bym aby do serwera SQL poszło również zapytanie dodające datę wyłączenia będącą aktualną datą + 30 dni !


Dzięki temu, w późniejszej części programu mógł bym spokojnie odliczać czas w stylu pozostało, tyle i tyle dni do wygaśnięcia subskrypcji.



Tak więc Panie i Panowie czy jest możliwość aby do takiej danej: $obecna_data = date("Y-m-d H:i"); wyprzedzić czas i dodać te 30 dni ?




Będę bardzo wdzięczny za wszelką pomoc.
pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
seba22
post
Post #2





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Kurka wodna, muszę przyznać ze sposób użytkownika Pyro działa, i to całkiem sprawnie:

W bazie MySQL wylądowały następujące dane:


Id datazaplaty datawylaczenia
10 2008-07-25 10:13 2008-08-24 10:13


  1. <?php
  2. $obecna_data = date("Y-m-d H:i");
  3. $data_plus_30_timestamp = mktime(date('H'), date('i'), 0, date('m'), date('d') + 30, date('Y'));
  4. $data_plus_30 = date("Y-m-d H:i", $data_plus_30_timestamp);
  5. ?>



Czyli problem A został rozwiązany.


Pozostał jeszcze B polegający na odliczaniu czasu. od zmiennej $data_plus_30 -> Oficjalnie, będzie ona pobierana z serwera SQL, no ale możemy 100 % założyć ze jej odebrany format będzie identyczny jak tej zmiennej: $data_plus_30

Znalazłem w sieci na stronie http://webmade.org/porady/data-php.phpnastępujący kod:
  1. <?php
  2. $data = "2016-03-24";
  3. $obecna_data = date("Y-m-d"); // pobieranie aktualnej daty
  4. $pozostalo = (strtotime($data) - strtotime($obecna_data)) / (60*60*24);
  5. echo "Pozostało ".$pozostalo." dni do ".$data;
  6. ?>



Ale zwracane przez niego dane, są że tak powiem trudne w interpretacji.

Chciał bym napisać więc powiedzmy 3 proste IF-y.


jezeli data + 30 dni minus dzisiejsza data jest wieksza wieksza niz 5 dni - echo wszystko OK
jezeli data +30 dni minus dzisiejsza data jest mniejsza niż 5 dni - twoja subskrypcja wygasnie za mniej niz 5 dni, zapisz się ponownie.
jezeli data +30 dni minus dzisiejsza data jest mniejsza lub = 0 - twoja subskrypcja została wylaczona

i potrzebuję to w IF-ach, bo będę tam wstawiać zapytania do serwera SQL, które dezaktywują subskrypcje.


Czy jest jakiś sposób aby powalczyć tak z tymi datami ?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 21:02