• User

    Confronto tra due orari, uno settato un preso dal server

    Ciao a tutti, sono qui per sottoporvi un quesito che riguarda gli orari. I dovrei fare in modo che, se un orario preso dal server è compreso tra due indicati nel codice, risulti attiva la selezione in caso contrario no. In pratica mi spiego meglio: io setto un orario iniziale (es: 10:30) ed un orario finale (es: 15:30) e vorrei che quando viene caricata la pagina, questa prendesse l'orario del server su cui si trova il sito e in base a quello mi mostri se è attivo o meno... Una soluzione io l'ho trovata nel modo che vi indico qui sotto, ma purtroppo non mi sembra affidabile... se per esempio torno indietro o riaggiorno la pagina mi restiutuisce per esempio 'Non Attiva' quando giustamente un attimo prima lo era e se magari riaggiorno di nuovo torna attiva... come posso fare? Idee? Maledetti orari... :arrabbiato:
    [PHP]
    $ora_apertura = 83000;
    $ora_chiusura = 163000;

    $ore = getdate();
    $_ora_attuale = $ore['hours'].$ore['minutes'].$ore['seconds'];
    $ora_attuale = (int)$_ora_attuale;

    if(($ora_apertura < $ora_attuale) && ($ora_attuale < $ora_chiusura)){
    $_SESSION['status'] = 1;
    echo '<span class="attiva">Attiva</span>';
    }else{
    $_SESSION['status'] = 0;
    <span class="disattiva">Disattiva</span>
    }

    [/PHP]


  • User

    Ciao,
    prova a fare la funzione js con timer e gli passi inizialmente la data da php (quindi quella del server)


  • User

    Innanzi tutto grazie per l'auito... in seconda battuta potresti illustrarmi un po come fare... io a javascript sto ancora a zero... anche se comincio ora ad utilizzarlo in qualche campo select... comunque se non hai tempo o voglia non preoccuparti, grazie lo stesso...per ora ti saluto.


  • User Attivo

    Forse non ho capito bene la domanda comunque io farei così:

    [php]<?php
    $min=37800; // orario minimo espresso in secondi
    $max=55800; // orario massimo espresso in secondi
    $ora_attuale=date('H.i',time()); // estraggo l'ora attuale
    $ora=explode(".",$ora_attuale); // ricavo ora e minuti separati
    $ore=$ora[0];
    $minuti=$ora[1];
    $tempo=($ore3600)+($minuti60); // trasformo ora e minuti attuali in secondi
    if ($tempo > $min && $tempo < $max) {
    echo 'Sei nel range';
    } else {
    echo 'Sei fuori dal range';
    }
    ?>[/php]


  • User

    Ciao tigrone, grazie per la risposta e scusa per il ritardo... comunque credo tu abbia centrato in pieno la risposta... ora provo e ti faccio sapere. Ti ringrazio ancora per ora ti slauto ciao ciao