Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    IFELSE ..più && (diversi orari della giornata e giorni della settimana)

    Ciao a tutti!
    Ho questo codice in cui voglio che
    -Tutti i giorni della settimana dalle 0 alle 8 appaia la scritta "is now sleeping"
    -Dal lunedi al venerdi dalle 9 alle 18 appaia la scritta "is now working"
    -Dal Lunedi al venerdi dalle 19 alle 23 appaia la scritta "is now playing videogames"
    e il sabato e la domenica appaia la scritta "is now relaxing"


    Ho dovuto scrivere più && all'interno degli if...e mi sa che ho fatto un casino perchè mi da sempre "is now working" anche dopo le 18.

    Qualcuno sa darmi una mano? anche con esempi vostri senza dover usare il mio codice di base.
    Grazie



    <?php
    date_default_timezone_set('Europe/Rome');

    $h = date('G');
    $d = date('w');


    if ($d < 7 && $h >= 0 && $h <= 8) { echo "is now sleeping"; }
    elseif ($d >=1 || $d <=5 && $h >= 9 && $h <= 18) { echo "is now working"; }
    elseif ($d >=1 || $d <=5 && $h >=19 && $h <= 23) {echo "is now playing videogames";}
    elseif ($d == 6 || $d == 0) { echo "is now relaxing";}

    else{echo"nothing";}

    ?>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Comincia mettendo qualche altra parentesi nelle condizioni
    Codice PHP:
    <?php
    date_default_timezone_set
    ('Europe/Rome');

    $h date('G');
    $d date('w');


    if (
    $d && $h >= && $h <= 8) { echo "is now sleeping"; }
    elseif ((
    $d >=|| $d <=5) && $h >= && $h <= 18) { echo "is now working"; }
    elseif ((
    $d >=|| $d <=5) && $h >=19 && $h <= 23) {echo "is now playing videogames";}
    elseif (
    $d == || $d == 0) { echo "is now relaxing";}

    else{echo
    "nothing";}

    ?>

  3. #3
    Grazie mille! e rapidissimo

    ora pare andare.
    Quindi di base devo mettere sempre tra parentesi quando cè || ?


    elseif (($d >=1 || $d <=5) && $h >= 9 && $h <= 18) { echo "is now working"; }



    Scusa ma sono alle prime armi.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Si, gli or mettili tra parentesi, serve per una questione di priorità degli operatori, per gli and non c'è bisogno.

  5. #5
    prova a vedere se ti piace anche così!

    Codice PHP:
    //$h è la variabile relativa all'ora, $d relativa al giorno!
    function what($h,$d) {
        if (
    $h>=&& $h<=8) {
            return 
    "is now sleeping";
        } elseif (
    $d>=&& $d<=5) {
            if (
    $h>=&& $h<=18) {
                return 
    "is now working";
            }
            if (
    $h>=19 && $h<=23) {
                return 
    "is now playing videogames";
            }
        } elseif (
    $d==|| $d==0) {
            return 
    "is now relaxing";
        } else {
            return 
    "nothing";
        }


  6. #6
    <?php
    date_default_timezone_set('Europe/Rome');

    $h = date('G');
    $d = date('w');


    if ($d < 7 && $h >= 0 && $h <= 8) { echo "is now sleeping"; }
    elseif (($d >=1 || $d <=5) && $h >= 9 && $h <= 18) { echo "is now working"; }
    elseif (($d >=1 || $d <=5) && $h >=19 && $h <= 23) {echo "is now playing videogames";}
    elseif ($d == 6 || $d == 0) { echo "is now relaxing";}

    else{echo"nothing";}

    ?>



    Scusate ma in realtà non funziona ancora. va solo "is now sleeping" quando è notte e "is now working " che è sempre presente altrrimenti...
    Cosa è ancora errato nella sintassi?

  7. #7
    Gli OR
    Devi usare gli AND
    hai visto il mio codice?

  8. #8
    grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.