in php een vergelijking uitvoeren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ronald E

Ronald E

25/03/2012 20:35:11
Quote Anchor link
ik wil een test uitvoeren maar gaat niet goed.
wie kan me helpen?
wat is de bedoeling van de test.
de daten en de tijd worden binnen gehaald.
nu moet het elke dag om 20 uur tot 4 uur s'nachts waar zijn alleen zondags avond en maandag nacht niet.

wat had ik bedacht.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
date_default_timezone_set('Europe/Amsterdam');
setlocale(LC_ALL, 'nl_NL');
$tijd = date("H:i:s");                        
$datum = date("d.m.y");
$dag = date("D");
if (($tijd > "20:00:00" || $tijd < "04:00:00" ) xor (($tijd > "20:00:00" and $dag == "Sun" ) or ($tijd < "04:00:00" and $dag == "Mon" ))) {
$test = "waar";
}
else{
$test = "nietwaar";
}

?>


ik weet even niet waar ik de fout in ga.
ik hoop dat jullie me kunnen helpen
alvast bedankt

Toevoeging op 25/03/2012 21:00:55:

ik weet het niet meer
het lijkt nu wel goed te gaan.
Gewijzigd op 25/03/2012 21:01:13 door Ronald E
 
PHP hulp

PHP hulp

20/04/2024 04:31:42
 
Jan Koehoorn

Jan Koehoorn

25/03/2012 21:27:05
Quote Anchor link
Mooi dat het werkt, maar zoveel and's en or's en ook nog een xor in 1 regel is altijd een slecht idee. In een geval als dit kun je beter met geneste if's werken, dat debugt een stuk makkelijker.
 
Roel -

Roel -

25/03/2012 21:31:46
Quote Anchor link
Offtopic: Jan Koehoorn is weer terug? Welkom :-)
 
Reshad F

Reshad F

25/03/2012 22:56:13
Quote Anchor link
hmm ik denk dat je code een stuk korter/makkelijker kan en zoals jan al zegt er klopt niks van je Or en And je kan ook beter && en || gebruiken. je kan dit makkelijk met een switch oplossen. denk ik zoiets misschien..

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php

date_default_timezone_set('Europe/Amsterdam');
setlocale(LC_ALL, 'nl_NL');
$tijd = date("H:i:s");                        
$datum = date("d.m.y");
$dag = date("D");

switch ($dag) {
  case
'0':
    # code...
    echo "het is zondag";
    break;

    case
'1':
      # code...
    echo "het is maandag";
      break;

      case
'2':
        # code...
      echo "het is dinsdag";
        break;

        case
'3':
          # code...
        echo "het is woensdag";
          break;

          case
'4':
            # code...
          echo "het is donderdag";
            break;

            case
'5':
              # code...
            echo "het is vrijdag";
              break;

              case
'6':
                 # code...
              echo "het is zaterdag";
                 break;
  default:

    # code....
    echo "hier is de dag";
    break;
}


?>


ik heb het niet getest maar het zou al een aardig opzetje moeten zijn met wat je wilt volgens mij.
Gewijzigd op 25/03/2012 23:00:08 door Reshad F
 
- SanThe -

- SanThe -

25/03/2012 23:12:24
Quote Anchor link
Reshadd farid op 25/03/2012 22:56:13:
hmm ik denk dat je code een stuk korter/makkelijker kan


Ik geloof niet dat jouw code korter is.

Reshadd farid op 25/03/2012 22:56:13:
zoals jan al zegt er klopt niks van je Or en And


Dat zei Jan niet. Hij raadt het niet aan omdat er makkelijk fouten gemaakt kunnen worden. Verder werkt die ene if() regel perfect.
 
Reshad F

Reshad F

25/03/2012 23:17:40
Quote Anchor link
@santhe maar een switch is dat niet makkelijker in zown geval?
 
Wouter J

Wouter J

25/03/2012 23:21:26
Quote Anchor link
Nee, waarom zo uitgebreid als je dat helemaal niet wilt? In dit geval is een switch toch ook niet makkelijker?
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
21
22
23
24
25
26
<?php

$someVar
= 'hello';

switch($someVar)
{
  case
'foo' :
    echo '$SomeVar is foo';
    break;
  case
'bar' :
    echo '$SomeVar is bar';
    break;
  case
'lorem' :
    echo '$SomeVar is lorem';
    break;
  case
'ipsum' :
    echo '$SomeVar is ipsum';
    break;
  case
'hello' :
    echo '$SomeVar is hello';
    break;
  default :

    echo '$SomeVar is '.$someVar;
    break;
}

?>


Je wilt alleen maar weten of $someVar gelijk is aan hello:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$someVar
= 'hello';
if( $someVar == 'hello' )
{

  echo '$SomeVar is hello';
}

?>
Gewijzigd op 25/03/2012 23:22:28 door Wouter J
 
- SanThe -

- SanThe -

25/03/2012 23:25:08
Quote Anchor link
Reshadd farid op 25/03/2012 23:17:40:
@santhe maar een switch is dat niet makkelijker in zown geval?


Het is overzichtelijker.
Maar deze if() is gewoon goed. Alleen denk ik dat niet iedereen snapt wat daar nou precies gebeurt en in dat geval zou ik ook zeggen: Gebruik een switch() of iets dergelijks.
 

25/03/2012 23:34:28
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

    # Als date('N') nummer tussen 1 en 7 niet gelijk is aan 1 = Maandag of 7 = Zondag en
    # date('G') moet groter zijn dan 20 of kleiner dan 4:

    if((!in_array(date('N'), array('1', '7'))) && ((date('G') > 20) || (date('G') < 4))) {
        echo 'Het is nu: '.date('Y-m-d H:i:s').'.';
    }

    else {
        echo 'Gelieve de site nu niet te bezoeken. :-)';
    }

    
?>
 
Ronald E

Ronald E

26/03/2012 18:03:58
Quote Anchor link
bedankt voor de reacties de laatste van Aaron lijkt wel op de mijne wel veel mooiet opgezet.
alleen zie ik nog niet hoe hij werkt voor zondag nacht dus van 0:00 tot 04:00 dan moet het waar zijn want deze dag hoort nog bij de zaterdag (en is nog waar). en de maandag nacht 0:00 tot 04:00 want hoort bij de zondag (en is niet waar)
 



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.