Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Data
Forum PHP.pl > Forum > PHP
mith
Jak można do dzisiejszej daty dodać np. 2 miesiące?

$dzisiaj = date("Y-m-d");
Kuziu
  1. <?php
  2. $iloscDni = 30;
  3. $dzisiaj = date("Y-m-d", time() + (86400 * $iloscDni));
  4.  
  5. ?>


Ilość dni już sobie sam policz

86400 to ilość sekund w 1 dniu
mith
Wielkie dzięki Kuziu.
Ale mam jeszcze jedno pytanie.
Mam podaną datę np. 2006-06-04 i jest ona pobierana z bazy danych z kolumny data i jak można zrobić aby 5 dni przed tą datą wysłał maila na podany adres z kolumny mail?

Kod
mail: | data: |

cos@cos.pl | 2006-07-17 |
jakis@jakis.pl | 2006-12-30 |
no@no.pl | 2006-04-03 |
^bmb
WItam!

Może z SQL-a skorzystać np:

  1. SELECT mail
  2. FROM tabela
  3. WHERE DATA BETWEEN DATE_SUB(NOW(),INTERVAL 5 DAYS) AND NOW()


a później w pętli foreach wysyłać komunikat dla każdego zwróconego maila
mith
A tak jaśniej?
Niema czegoś prostszego?

Bo mi tu jakiś błąd wywala:

Kod
zapytanie SQL:  

SELECT `mail`
FROM costam
WHERE `data`
BETWEEN DATE_SUB( NOW( ) , INTERVAL 5 DAYS )
AND NOW( )
LIMIT 0 , 30

MySQL zwrócił komunikat:  

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DAYS ) AND NOW( )
LIMIT 0, 30' at line 1
^bmb
sorry nie mogę etraz przetestować ...spróbuj zmienić DAYS na DAY ..powinno działać
mith
No dobra działa już ten skrypt ale jak teraz zrobić aby mail był wysyłany tylko 1 raz?
^bmb
Jak rozumieć ten jeden raz?

- jeden raz przy każdym wywołaniu skryptu? Czyli np. jeśli maile w tej tabeli nie są wartościami unikalnymi i mogą się powtarzać. Wtedy w zapytaniu
  1. SELECT DISTINCT mail...


- jeśli chodzi o to żeby przypominał tylko jeden raz na dzień automatycznie przy pierwszym wywołaniu skryptu danego dnia to po wysłaniu maila zapisuj gdzies do bazy informacje z datą ostatniego rozesłania komunikatów a pozniej przed wywołaniem sprawdzaj czy juz dzis byly rozesłane
mith
Nie codziennie tylko tak:

W tej bazie danych kolumna data oznacza termin kiedy konto ma zostać usunięte. Ale 5 dni przed usunięciem konta powinien zostać wysłany mail do osoby z informacją iż konto zostanie za 5 dni usunięte.

Kod
mail: | data: |

cos@cos.pl | 2006-07-17 |
jakis@jakis.pl | 2006-12-30 |
no@no.pl | 2006-04-03 |


I w tym problem że nie wiem jak to można zrobić?
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.