Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    popolare dinamicamente una select con date crescenti

    Allora, il mio problema è: popolare dinamicamente una select, attribuendo a ciascuna option valore e testo prelevati dal calendario, come nell'esempio che segue.
    Se il giorno in cui la pagina viene aperta è - ad esempio - l'11 luglio 2009, le option saranno:
    Codice PHP:
    <option value="11-07-2009">sabato 11 Luglio 2009</option>
    <
    option value="12-07-2009">domenica 12 Luglio 2009</option>
    <
    option value="13-07-2009">lunedi 13 Luglio 2009</option>
    <
    option value="14-07-2009">martedi 14 Luglio 2009</option>
    ... 
    Quindi, il primo valore deve corrispondere al giorno corrente, e gli altri via via a seguire, per i 18 mesi successivi.
    Devo poter calcolare, quindi, giorno per giorno, di che giorno della settimana si tratta, in che mese siamo (e quindi di quanti giorni è quel mese, tenendo anche conto degli anni bisestili per febbraio) ed in che anno.
    Immagino ci sarà un modo semplice di ottenere questi valori, ed altrettanto per limitare i valori a 18 mesi...
    Qualcuno mi sa dare qualche indicazione?
    Grazie!
    metatad
    graphic & web design

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    Re: popolare dinamicamente una select con date crescenti

    Originariamente inviato da metatad
    Allora, il mio problema è: popolare dinamicamente una select, attribuendo a ciascuna option valore e testo prelevati dal calendario, come nell'esempio che segue.
    Se il giorno in cui la pagina viene aperta è - ad esempio - l'11 luglio 2009, le option saranno:
    Codice PHP:
    <option value="11-07-2009">sabato 11 Luglio 2009</option>
    <
    option value="12-07-2009">domenica 12 Luglio 2009</option>
    <
    option value="13-07-2009">lunedi 13 Luglio 2009</option>
    <
    option value="14-07-2009">martedi 14 Luglio 2009</option>
    ... 
    Quindi, il primo valore deve corrispondere al giorno corrente, e gli altri via via a seguire, per i 18 mesi successivi.
    Devo poter calcolare, quindi, giorno per giorno, di che giorno della settimana si tratta, in che mese siamo (e quindi di quanti giorni è quel mese, tenendo anche conto degli anni bisestili per febbraio) ed in che anno.
    Immagino ci sarà un modo semplice di ottenere questi valori, ed altrettanto per limitare i valori a 18 mesi...
    Qualcuno mi sa dare qualche indicazione?
    Grazie!

    ti consiglio di partire dal sito ufficiale php.net e di studiare date e simili

    studiando quello risolvi.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Dai anche uno sguardo a questo post.

    http://forum.html.it/forum/showthrea...9#post12552029

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    @ Ciro78:
    si, cercavo indicazioni un pò più precise, per non dover perdere tempo a cercare...
    @ nicola75ss:
    grazie, è cmq un punto di partenza, parziale magari, ma vale come indirizzamento...
    Thanx both
    metatad
    graphic & web design

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da metatad
    @ nicola75ss:
    grazie, è cmq un punto di partenza, parziale magari, ma vale come indirizzamento...
    Nel link c'è tutto quello che ti serve. Basta che cicli tra la data odierna e quella finale.

    $finale = date('Y-m-d',strtotime('+18 month'));

    Per visualizzare le option con giorno e mese in formato letterale basta che usi due array.
    Qui trovi un esempio:

    http://forum.html.it/forum/showthrea...9#post11128819

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Si, si... c'è praticamente già tutto... grazie 1000!...
    metatad
    graphic & web design

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Ancora qualche problema...
    Allora, ho provato a costruirmi la data in questo modo:
    Codice PHP:
    $today date("d-m-Y");
    $day date("d");
    $year date("Y");
    function 
    giorno($data) {
    $giorni = array('Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato');
    return 
    $giorni[date('w',strtotime($data))];

    function 
    mese($data) {
    $mesi = array('Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre');
    return 
    $mesi[date('Y',strtotime($data))];

    echo 
    giorno($today) . ", " $day mese($today) . " " $year
    però mi restituisce questo:
    Martedì, 14 2009
    Perchè non mi dà il mese?
    metatad
    graphic & web design

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    $data '2009-07-01';

    function 
    giorno($data) {
    $giorni = array('Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato','Domenica');
    return 
    $giorni[date('w',strtotime($data))];
    }
    function 
    mese($data) {
    $mesi = array(1=>'Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre');
    return 
    $mesi[date('n',strtotime($data))];
    }
    echo 
    giorno($data) . ' 'date('j',strtotime($data)) . ' 'mese($data) .' 'date('Y',strtotime($data)); 

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Thanx!!!...
    Però, per cortesia, mi spieghi... così faccio un passo avanti, non mi limito a risolvere il problema.
    metatad
    graphic & web design

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Nel manuale relativamente alla funzione date() è spiegato tutto chiaramente.

    date('w') restituisce un numero compreso tra 0 (domenica) e 6 sabato
    date('n') invece restituisce un numero compreso tra 1 e 12.

    Quindi l'array relativo ai mesi lo devi impostare con l'indice che parte da 1 e non da 0 come di default.

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.