Datum uit database vergelijken met huidige datum

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wim Selles

Wim Selles

10/11/2008 16:06:00
Quote Anchor link
Hallo allemaal,

Ik heb de volgende vraag.

In mijn db heb ik een datum staan van het wegschrijven van een record (alleen dag,maand en jaar).
Nu wil ik een optie maken dat die record alleen aangepast kan worden als er niet meer dan x dagen zit tussen de huidige en datum van invullen. Die x stel ik in de code vast, dat is geen waarde uit de db.

Dus bv:
- Record is weggeschreven op 9-11-2008
- Maximaal aantal dagen staat op 7
- Huidige datum = 10-11-2008
- verschil -> binnen die 7 dagen

Gevolg is dat knop zichtbaar is.


- Record is weggeschreven op 1-11-2008
- Maximaal aantal dagen staat op 7
- Huidige datum = 10-11-2008
- verschil -> meer dan 7 dagen

Gevolg is dat knop niet zichtbaar is.


Iemand een oplossing?

tnx in advance
 
PHP hulp

PHP hulp

24/11/2024 23:51:09
 
Marco

Marco

10/11/2008 17:35:00
Quote Anchor link
In dit voorbeeld ga ik er even vanuit dat je de datum al uit de database hebt gehaald, en dat het een timestamp is, dus tijd in seconden vanaf 1970. Laat het even weten als een van deze condities dusdanig afwijkt, dat je er meer toelichtig over wilt.

Het tijdstip is opgehaald en in het variabel $laatst_aangepast gedaan.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$laatst_aangepast
= 1226334604; // Deze komt uit de database
$aanpastijd = 604800; // 7 dagen in seconden
$aanpasbaar_tot = $laatst_aangepast + $aanpastijd; // Nu hebben we de tijdindex tot wanneer de record mag worden aangepast

if(time() < $aanpasbaar_tot) {
  // Als de huidige tijd kleiner is dan $aanpasbaar_tot, mag de record nog gewijzigd worden
  echo "De record mag nog aangepast worden";
}
else {
  // Als de tijd verstreken is (invoeg tijd + 7 dagen) wordt dit uitgevoerd
  echo "De record mag niet meer aangepast worden";
}

?>


Je kunt dan een knop invoegen als de if-statement succesvol is.
Gewijzigd op 01/01/1970 01:00:00 door Marco
 
Lode

Lode

10/11/2008 18:09:00
Quote Anchor link
@Marco timestamps zijn echt behoorlijk 20e eeuw inmiddels

In de database staan... Juist, watvoor datbase?
Neem aan mysql ?

kijk eens naar : http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html en met name naar INTERVAL....

(alleen dag,maand en jaar), mag hopen dan wel in een DATE type veld....
Anders heb je er nog niet zo veel aan.
 
Wim Selles

Wim Selles

14/11/2008 20:21:00
Quote Anchor link
Sorry voor de late reactie. Vanwege omstandigheden was ik niet eerder in de gelegenheid om te reageren.

@Marco,

Het werkt, ik heb het simpel gehouden en met jouw voorbeeld heb ik het volgende gedaan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$laatst_aangepast
= strtotime($row['timestamp']);    // Deze komt uit de database, hier wordt de tijd omgezet naar seconden
$aanpastijd = 604800;                                 // 7 dagen in seconden
$aanpasbaar_tot = $laatst_aangepast + $aanpastijd;     // Nu hebben we de tijdindex tot wanneer de record mag worden aangepast

if(time() < $aanpasbaar_tot)
{

      // Als de huidige tijd kleiner is dan $aanpasbaar_tot, mag de record nog gewijzigd worden
      echo '
<form method="post" action="">
        <input type="submit" class="button" value="Aanpassen" />
</form>
    '
;
}

else
{
      // Als de tijd verstreken is (invoeg tijd + 7 dagen) wordt dit uitgevoerd
      echo "De record mag niet meer worden aangepast ";
}

?>


Tnx voor je hulp
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.