Hey iedereen,

Heb me net ingeschreven hier op phphulp.nl, ziet er een veelbelovende community uit!

Zit met het volgende probleem.
Ik heb in een mysql db timestamps staan in unix tijdcode.
Nu wil ik een query maken waarbij ik alle regels verwijder die ouder als 3 dagen zijn.
Voor het mysql gebeuren, geen probleem, maar hoe kan ik met php een unix-tijdcode genereren dat exact 3 dagen geleden is.

Ik heb het ooit eens gefixt, maar vind niet meer hoe.
Iets met MKTIME dacht ek, maar na nu 2 uur zoeken vraag ik het toch maar even.

Kan iemand me wegwijs me maken?
Hartelijk bedankt!

Groeten en een frisse pint voor iedereen!
Tom
Ik heb in een mysql db timestamps staan in unix tijdcode

Dat is niet zo handig, maak hier een DATETIME van, dat is 100x eenvoudiger. Dit wil je overigens helemaal niet met PHP doen, dat is veel te omslachtig.

In SQL:

DELETE FROM
  tabelnaam
WHERE
 datum < CURRENT_DATE - INTERVAL 3 DAY
Zoiets?: (notitie, ik werk nooit met timestamps)

<?php
$threedays = (strtotime("+3 days") - strtotime("now"));

$timestamp = ''; // hier je timestamp

$threedaysago = ($timestamp - $threedays);

echo $threedaysago;

zal dadelijk eens proberen. bedankt voor de snelle reactie
pgFrank schreef op 01.02.2008 13:39
Ik heb in een mysql db timestamps staan in unix tijdcode

Dat is niet zo handig, maak hier een DATETIME van, dat is 100x eenvoudiger. Dit wil je overigens helemaal niet met PHP doen, dat is veel te omslachtig.

In SQL:

DELETE FROM
  tabelnaam
WHERE
 datum < CURRENT_DATE - INTERVAL 3 DAY


en als ik die regel aanmaak, hoe zet ik in DATETIME de huidige datum?

ik zie dat het veld overal '0000-00-00 00:00:00' geworden zijn.




Met NOW NOW() ?
De huidige datum kun je met de functie NOW() of de constante CURRENT_DATE aanmaken. NOW() levert echter ook de tijd op, het is afhankelijk van de toepassing of je die ook nodig hebt/wilt gebruiken.

INSERT INTO
  tabelnaam(
    datum
  )
VALUES(
  CURRENT_DATE
);

Komt dus geen letter php aan te pas.
bedankt iedereen! ik heb em aan het werken gekregen.

Reageren