login  Naam:   Wachtwoord: 
Registreer je!
 Forum

IF statement vraag (Opgelost)

Offline willie - 20/09/2011 13:57
Avatar van willie0 Je kan hier mee vergelijken op hoger of lager.
Maar wat als die nu gelijk moet zijn.
Ik dacht dus zo met ==
  1. if (mktime(23, 59, 59, $obj->maand, $obj->dag, $obj->jaar) == time()) {
  2. echo " - <u><b>vandaag</b></u>";
  3. } else {
  4. echo "";
  5. }

Maar dat doet die dus niet.
wat doe ik dus niet goed ?

7 antwoorden

Gesponsorde links
Offline qubus - 20/09/2011 14:19 (laatste wijziging 20/09/2011 14:44)
Avatar van qubus Lid Deze vergelijking is alleen om 23 uur 59 min en 59 sec gelijk op die datum. Je wilt de dag vergelijken, dus dan doe je:
  1. if (time() < mktime(23, 59, 59, $obj->maand, $obj->dag, $obj->jaar) && time() > mktime(00, 00, 01, $obj->maand, $obj->dag, $obj->jaar)) {
  2. echo " - <u><b>vandaag</b></u>";
  3. } else {
  4. echo "";
  5. }


Zou moeten werken denk ik...
Dan moet je ook je vergelijking uit je vorige topic even wijzigen het wordt iets als:
  1. if (mktime(00, 00, 01, $obj->maand, $obj->dag, $obj->jaar) < time()) { echo "Komt nog"; }
  2. else if (mktime(23, 59, 59, $obj->maand, $obj->dag, $obj->jaar) > time()) {echo "Geweest"; }
  3. else { echo "Vandaag"; }
Offline Dlol - 20/09/2011 14:54 (laatste wijziging 20/09/2011 16:02)
Avatar van Dlol Lid Je zou ook kunnen werken met de gehele deling:

  1. if (intval(mktime(23, 59, 59, $obj->maand, $obj->dag, $obj->jaar) / 24*3600) == intval(time() / 24*3600)) {
  2. echo "vandaag";
  3. }


EDIT: BELANGRIJK! Ik was mijn haakjes vergeten... Het moet zo zijn:
  1. if (intval(mktime(23, 59, 59, $obj->maand, $obj->dag, $obj->jaar) / (24*3600)) == intval(time() / (24*3600))) {
  2. echo "vandaag";
  3. }
Offline willie - 20/09/2011 15:20
Avatar van willie 0
qubus schreef:
Deze vergelijking is alleen om 23 uur 59 min en 59 sec gelijk op die datum. Je wilt de dag vergelijken, dus dan doe je:
[..code..]

Zou moeten werken denk ik...
Dan moet je ook je vergelijking uit je vorige topic even wijzigen het wordt iets als:
[..code..]
de eerste doet het goed, maar de tweede werkt niet goed.
inplaats van vandaag geeft hij is geweest aan.
Offline qubus - 20/09/2011 15:26
Avatar van qubus Lid
  1. if (mktime(00, 00, 01, $obj->maand, $obj->dag, $obj->jaar) < time()) { echo "Komt nog"; }
  2. else if (mktime(23, 59, 59, $obj->maand, $obj->dag, $obj->jaar) < time() && mktime(00, 00, 01, $obj->maand, $obj->dag, $obj->jaar) > time()) {echo "Vandaag"; }
  3. else { echo "Geweest"; }


Zo dan?
Offline willie - 20/09/2011 15:35 (laatste wijziging 20/09/2011 15:48)
Avatar van willie 0 Hij blijft ipv vandaag geweest aangeven.
nou heb ik het zo opgelost.
  1. <?
  2. if (mktime(23, 59, 59, $obj->maand, $obj->dag, $obj->jaar) < time()) {
  3. echo " - <u><b>Is al geweest !</b></u>";
  4. } else {
  5. echo "";
  6. }
  7. if (mktime(00, 00, 01, $obj->maand, $obj->dag, $obj->jaar) > time()) {
  8. echo " - <u><b>Komt nog !</b></u>";
  9. } else {
  10. echo "";
  11. }
  12. if (time() < mktime(23, 59, 59, $obj->maand, $obj->dag, $obj->jaar) && time() > mktime(00, 00, 01, $obj->maand, $obj->dag, $obj->jaar)) {
  13. echo " - <u><b>Nu-vandaag</b></u>";
  14. } else {
  15. echo "";
  16. }
  17. ?>

en het werkt goed. ook voor het nieuwe jaar of een jaar terug
Offline qubus - 20/09/2011 16:08
Avatar van qubus Lid Ook prima, je kunt de drie keer ' else {echo ""; " ' gewoon weglaten, omdat het altijd één van de drie is.
Offline Frisbee - 20/09/2011 16:10 (laatste wijziging 20/09/2011 16:10)
Avatar van Frisbee HTML beginner Misschien zoiets:

  1. if(date('Y-m-d') == date('Y-m-d', mktime(mktime(0, 0, 0, $obj->maand, $obj->dag, $obj->jaar))))
  2. {
  3. echo 'Vandaag';
  4. }
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.272s