[PHP+MySQL] Agenda; data vergelijken

Pagina: 1
Acties:

  • GhandiHarder
  • Registratie: Februari 2003
  • Laatst online: 13-05 21:14
Best Mensen,

Ik ben een kleine agenda aan het maken, maar ik kom op een probleem.
Datums toevoegen doe ik op de volgende manier: In een form 3x een menu, waarin de dag, maand, en het jaar kan aangegeven worden. De datum word dan zo gedefineerd:

$datum1 = mktime (0,0,0,$maand,$dag,$jaar);

$datum2 = date("Y-m-d H:i:s", $datum1);

Ik krijg dan datums als: 2005-02-23 00:00:00. En daar heb ik geen problemen mee.

Maar nu wil ik graag alleen de datums weergeven die nog komen, en de datums die vandaag zijn, highlighten. Ik heb al vanalles geprobeerd, en proberen op te zoeken, maar ik kwam op de volgende problemen. Ik ging de variabele vergelijken met NOW(), maar dit lukt niet, omdat hij geen sec/min/uren in de db heeft staan.

Wie weet de oplossing?

  • phYzar
  • Registratie: November 2001
  • Laatst online: 18:05
Het handigst is sowieso om in je database timestamps op te slaan.
Om te kijken of een bepaalde datum vandaag is kun je zo vergelijken:

PHP:
1
2
3
4
5
6
7
8
if(date("Y-m-d", $datum1)==date("Y-m-d"))
{
 echo "vandaag";
}
elseif($timestamp_datum1 > $timestamp_vandaag)
{
  echo "toekomst";
}

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Om alles te selecteren dat nog komt:
code:
1
2
3
4
SELECT *
FROM kalender
WHERE datumveld >= NOW()
ORDER BY datumveld

Vervolgens controleer je in PHP bij het afdrukken of de gebeurtenis die je afdrukt vandaag is (hint: getdate), en zo ja, dan pas je de opgehaalde string wat aan. :)
phYzar schreef op woensdag 23 februari 2005 @ 17:32:
Het handigst is sowieso om in je database timestamps op te slaan.
Ik hoop dat je hier niet een veld met het timestamp-type mee bedoelt. Dat doet namelijk niet wat je wil: het slaat automatisch, zonder dat je er wat voor moet doen, de tijd op dat een record voor het laatst geupdate is. Lijkt me geen goed plan. ;)

[ Voor 40% gewijzigd door NMe op 23-02-2005 17:36 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
En anders kun je iets met DateDiff ( DATEDIFF(day, startdate, endate) >= 0 )doen maar weet niet of dit ook kan in MySql.

stp - PSN ID: stp_4


  • phYzar
  • Registratie: November 2001
  • Laatst online: 18:05
-NMe- schreef op woensdag 23 februari 2005 @ 17:35:
Ik hoop dat je hier niet een veld met het timestamp-type mee bedoelt. Dat doet namelijk niet wat je wil: het slaat automatisch, zonder dat je er wat voor moet doen, de tijd op dat een record voor het laatst geupdate is. Lijkt me geen goed plan. ;)
nee, geen goed plan :P

Maar aangezien je met al dat gereken met data het een en ander aan conversies doet vind ik het persoonlijk altijd handig om timestamps geserveerd te krijgen aangezien je daarmee alle kanten op kunt.