Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Orario maggiore, orario minore...

    Salve,
    ho cercato un pò tra i forum non trovando riscontro.

    Ho un orario di riferimento, ad esempio:
    $chiusura = "13:00";

    E poi la data attuale, calcolata così:
    $orario_att = date("H:m");

    Sono riuscito a calcolare la differenza in minuti (l'obiettivo finale è quello di inviare un messaggio a video "Siamo in chiusura" se l'orario attuale è nei prossimi 30 minuti dalla chiusura), ma il mio algoritmo mi restituisce soltanto la differenza in minuti in formato intero.

    Io ho necessità di sapere, chiaramente, se l'orario $orario_att è già trascorso, rispetto a $chiusura.

    Mi andrebbe bene anche un algoritmo che mi dicesse $chiusura-$orario_att ---> +45 ... o meno -45, a seconda se trascorso o meno.

    Riuscite ad aiutarmi?
    Grazie in anticipo.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    E perché non ti va bene così come ce l'hai ora? Non ho capito.
    La differenza in minuti che riesci a calcolarti non è proprio ciò che vuoi?

  3. #3
    Intanto grazie per la risposta.
    No, non mi va bene.

    Forse sono stato poco chiaro io.

    Faccio un esempio pratico:

    $chiusura = "13:30"; // E' l'orario di chiusura dell'ufficio.
    $orario_att = date("H:i"); // E' l'orario attuale

    Se $orario_att è "13:45" oppure "13:15", la differenza è sempre 15 minuti. Io invece ho bisogno di sapere se è -15 minuti oppure +15 minuti. Insomma ho bisogno di sapere se l'orario è già trascorso rispetto alla chiusura.

    Se sono le 13:45 devo alla fine mandare a video il messaggio "L'ufficio è chiuso". Diversamente "L'Ufficio è aperto" ... e se mancano 0 minuti "Siamo in chiusura..."

    Al momento utilizzo questo:

    $differenza = date_diff(date_create($chiusura),date_create($orar io_att));
    $minA = 60*($differenza->format("%H"));
    $minB = 1*($differenza->format("%i"));
    $min_rest = $minA+$minB;

    Ma mi restituisce sempre un numero in positivo.
    Ultima modifica di StefanUccio; 09-11-2015 a 20:36 Motivo: Errore di trascrizione.

  4. #4
    Con 'm' ti restituisce il mese, per i minuti devi mettere $orario_att = date("H:i")

    http://php.net/manual/it/function.date.php

  5. #5
    Si si grazie, ho solo sbagliato a trascrivere. Nell'algoritmo è tutto corretto. Attendo riscontri.
    Ho corretto il post.

  6. #6
    Una cosa del genere?

    codice:
    <?php
    $ora_chiusura = 19;
    $minuto_chiusura = 25;
    $ora_attuale = date('H');
    $minuto_attuale = date('i');
    $chiusura = 30;
    if (($ora_attuale >= $ora_chiusura) AND (($minuto_chiusura + $chiusura) < $minuto_attuale)) {
        echo "<br>Siamo chiusi";
    }
    else if (($ora_attuale >= $ora_chiusura) AND (($minuto_attuale + $chiusura) >= $minuto_attuale)) {
        echo "<br>Siamo in chiusura";
    }
    else { echo "<br>Siamo aperti"; }
    ?>

  7. #7
    Ciao,
    puoi fare un veloce controllo senza tener conto delle date effettive usando il formato h24:

    tipo:

    Codice PHP:
    if (date("Hi") > str_replace(":"""$chiusura))
     {    
         echo 
    "Chiusi";
    }else {    
    echo 
    "aperti";} 

  8. #8
    Gentilissimo, lo provo e ti aggiorno.

  9. #9
    Il mio non va bene manca qualcosa
    Ultima modifica di alexdigitale; 09-11-2015 a 21:14

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Codice PHP:
    // timestamp 19:30
    $chiusura mktime(19,30);
    // timestamp ora attuale
    $ora_attuale mktimedate('H'), date('i') );

    // differenza in minuti
    $differenza = ($chiusura $ora_attuale) / 60;

    if ( 
    $differenza <= )
    {
        echo 
    "Chiuso";
    }
    else if ( 
    $differenza <= 30 )
    {
        echo 
    "In chiusura";
    }
    else
    {
        echo 
    "Aperto";

    Ultima modifica di Alhazred; 10-11-2015 a 11:43

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.