webForumDet fria alternativet

Vet ej hur jag ska använda date_add

PHP

4 svar · 570 visningar · startad av Emil W

Medlem sedan mars 2009512 inlägg
Frågan#1

Jag vill att annonser ska försvinna efter 60 dagar.

jag har kikat på date_add funktionen men vet inte hur jag ska använda den.

Någon som vet hur jag ska göra om man ska plusa på 60 dagar på det nuvarande datum ?

Medlem sedan juni 20006 031 inlägg
#2

Eftersom du skriver i php forumet antar jag att det är php funktionen du menar, det finns nämligen date_add() för mysql också.

Har inte använt date_add någon gång då det kom först med PHP5.
Men förr i tiden gjorde man typ så här istället om det är till hjälp. ;)

$date = date("Y-m-d");
$newdate = strtotime('+2 month', strtotime($date)) ;
$newdate = date('Y-m-d', $newdate);
 
echo $newdate;

/edit
Vill du ha exakt 60 dagar istället för 2 månader som i exemplet så byter du ut +2 month till +60 day

Medlem sedan aug. 20039 340 inlägg
#3

Är det date_add i SQL du undrar över? Date_sub är nog enklare att använda.
Om du har lagrat annonser i databasen och har sparat datumet när annonsen lades in i kolumnen datum kan du plocka ut en annons som är nyare än 60 dagar så här:

SELECT * FROM reklam
WHERE DATUM > DATE_SUB(NOW(), INTERVAL 60 DAY)
ORDER BY RAND()
LIMIT 1;

Om du istället vill ta bort annonser som är äldre än 60 dagar kan du göra så här:

DELETE FROM reklam
WHERE DATUM < DATE_SUB(NOW(), INTERVAL 60 DAY);

För att detta ska funka måste datumet vara lagrat som en datumtyp i databasen.

Medlem sedan mars 2009512 inlägg
#4

jag lagar datum så här 2010-01-01 21:01:03

Medlem sedan juni 20006 031 inlägg
#5

Enligt manualen så funkar php's date_add såhär:

$date = new DateTime("2010-01-01 21:01:03");
$date = date_add($date, new DateInterval("P60D"));
echo $date->format("Y-m-d");
248 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)