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

    Consiglio gestione orari

    salve!
    devo dare la possibilità di gestire gli orari di prenotazione, impostando però un limite minimo e uno massimo.
    cioè ad esempio si può prenotare dalle 18:00 alle 23:30, e nella lista devono comparire tutti gli orari intermedi compresi dei 30 minuti (18:30, 19:00, 19:30,.....).
    ovviamente gli orari li prende da db, ma nn so come gestirli.
    inizielmante avevo pensato di far scegliere quello iniziale e qullo finale, e poi di costruire il tutto in mezzo.
    è possibile?
    oppure che consigliate??
    sono aperto a tutto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    dipende quanto "cambiano" queste impostazioni... se usi un db verosimilmente avrai "n" gruppi di orari diversi... è così? o "in tutto il sito" c'è un unico "range"? chi cambia/può cambiare tali impostazioni e come?

  3. #3
    ogni ristorante ha un suo range.
    magari c'è chi è aperto solo a cena e chi sia a pranzo che a cena....
    gli amministratori possono cambiare modificare gli orari quando vogliono.
    come li cambiano penso da semplici textbox.
    ma dipende anche da imposto la cosa a monte.
    quindi direci che nn c'è una range unico (magari fosse così, sarebbe senz'altro più facile).

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    se l'intervallo d'orario è associato a un'utenza lo metterei nel db (se ne hai più d'uno con una tabella a sè, altrimenti bastano un paio di campi), quindi:

    CASO A:
    Tabella unica "ristoranti":
    id, nome, ora apertura, ora chiusura

    CASO B:
    Due tabelle: "ristoranti" e "orari":
    ristorante: id, nome
    orari: id_ristorante, ora apertura, ora chiusura

    A questo punto "prelevi" dal db gli orari (in entrambi i casi) e generi quelli intermedi con un semplice ciclo che poi userai per popolare un SELECT suppongo

  5. #5
    ok quindi l'hai pensata come me in sostanza.
    anche io penso che la cosa migliore sia salvare orario di apertura/chiusura nel db (ancora nn so se in una tabella separata o nella stessa).
    si poi ciclo e popolo una SELECT.

    adesso provo a fare tutto.
    intanto grazie per la risposta.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    un consiglio: se hai un dubbio tra i casi A e B, ti consiglio di usare il secondo che è più flessibile per eventuali futuri cambiamenti

  7. #7
    allora.
    ho pensato di tenere l'orario di apertura e quello di chiusuta in campi separati in modo da limitare errori umani in fase di inserimento.
    quindi ho un campo in cui metto l'orario di apertura e uno di chiusura.
    a questo devo prendere i i due campi e creare tutti gli orari intermedi.
    i valori sono salvati in questa forma: 18:00.
    solo che nn ho ben capito come gestire le mezz'ore.
    come faccio a fare un ciclo prendendo i due orari limite e metterci in mezzo i 30 minuti?
    la tendina deve essre una cosa del genere insomma:
    18:00 (messo a mano)
    18:30
    19:00
    19:30
    20:00 (messo a mano)

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    un metodo brutale può essere...

    Codice PHP:
    function listaorari ($from$to$gap) {
    // $from = orario inizio (es. '18:00') nel formato HH:MM
    // $to = orario fine (es. '20:30') nel formato HH:MM
    // $gap = intervallo in minuti (es. 30 = 30 minuti)
      
    $listaorari = array();
      
    $f substr($from02)*60+substr($from32);
      
    $t substr($to02)*60+substr($to32);
      for (
    $i $f$i<=$t$i+=$gap) {
        
    $n intval($i 60);
        
    $o str_pad($n2'0'STR_PAD_LEFT).':'.str_pad($i-$n*602'0'STR_PAD_LEFT);
        
    $listaorari[] = $o;
      };
      return (
    $listaorari);
    };

    // ESEMPIO:
    var_export(listaorari('18:00''20:30'30)); 

  9. #9
    funziona perfettamente:
    Codice PHP:
                                        <select name="orario">
                                            <?php

                                            
    function listaorari($from$to$gap) {
                                                
    $listaorari = array();
                                                
    $f substr($from02) * 60 substr($from32);
                                                
    $t substr($to02) * 60 substr($to32);
                                                for (
    $i $f$i <= $t$i+=$gap) {
                                                    
    $n intval($i 60);
                                                    
    $o str_pad($n2'0'STR_PAD_LEFT) . ':' str_pad($i $n 602'0'STR_PAD_LEFT);
                                                    
    $listaorari[] = $o;
                                                };
                                                return (
    $listaorari);
                                            }

                                            foreach (
    listaorari($ristHrApe$ristHrChiu30) as $hr => $val) {
                                                echo 
    '<option>' $val '</option>';
                                            }
                                            
    //var_export(listaorari($ristHrApe, $ristHrChiu, 30));
                                            
    ?>
                                        </select>
    i valori che passo alla funzione li prendo da db.
    grazie mille!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ok... ciao...

    p.s.: puoi anche passare un "gap" diverso da 30'... p.es. 15', 20' o altro...

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.