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

    mese: precedente e successivo

    ho una bella array ($months) con i 12 mesi del tipo
    1 => gennaio
    2 => febbraio
    ...
    12 =>dicembre

    dovrei are in modo che un script mi stampi il mese precedente e 2 mesi fa in questo modo
    $now = date('m');
    $onemonthago = $now-1;
    $twomonhago = $now-=2;
    $now = $mm[$now];
    ...eccetera

    il problema si presenta con gennaio, febbraio, novembre e dicembre
    perchè se il mese è gennaio quello prima dovrebbe essere dicembre e non nullo... (idem per febbraio, due mesi prima è dicembre non nullo... eccetera)

    come faccio a "dire" a php che prima di "1" c'è "12" ??
    Cristiano
    ---
    Originariamente inviato da rebelia : solo un nerd puo' pensare di tacchinare in un forum di informatica

  2. #2
    ci metti un paio di if...
    l'ideale sarebbe fare una funzione:
    Codice PHP:
    function nome_mese( (int) $n) {
    if (
    $n == 1) { $n 12; }
    ......


  3. #3
    come pensavo... speravo ci fosse un funzioncita frefatta in php... vabbè...
    Grazie
    Cristiano
    ---
    Originariamente inviato da rebelia : solo un nerd puo' pensare di tacchinare in un forum di informatica

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    <?php
    $mesi 
    = array(=> "gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto",
                        
    "settembre","ottobre","novembre","dicembre");
                        
    echo 
    $mesi[date('n')];
    echo 
    "
    "
    ;

    $un_mese_prima date('n',mktime(0,0,0,date('n')-1,date('d'),date('Y')));
    $un_mese_prima $mesi[$un_mese_prima];
    echo 
    $un_mese_prima;
    echo 
    "
    "
    ;
    $due_mesi_prima date('n',mktime(0,0,0,date('n')-2,date('d'),date('Y')));
    $due_mesi_prima $mesi[$due_mesi_prima];
    echo 
    $due_mesi_prima;

    ?>

  5. #5
    Giusto... non ci avevo pensato a mktime.... mannaggia.... :rollo:
    Nel frattempo avevo creato questa funzione:
    Codice PHP:
    function loadmonth($mm$jj$type//Rispettivamente: mese corrente (o che si vuole considerare), anno corrente (o che si vuole considerare), 1 o 2 rispettivamente mese prima o 2 mesi prima
    {
        global 
    $months//Contiene i nomi dei mesi
        
    if($type == 1)
        {
            switch(
    $mm)
            {
                case 
    1:
                    
    $mon 12;
                    
    $jea $jj-1;
                    break;
                case 
    2:
                    
    $mon 1;
                    
    $jea $jj;
                    break;
                case 
    3:
                    
    $mon 2;
                    
    $jea $jj;
                    break;
                case 
    4:
                    
    $mon 3;
                    
    $jea $jj;
                    break;
                case 
    5:
                    
    $mon 4;
                    
    $jea $jj;
                    break;
                case 
    6:
                    
    $mon 5;
                    
    $jea $jj;
                    break;
                case 
    7:
                    
    $mon 6;
                    
    $jea $jj;
                    break;
                case 
    8:
                    
    $mon 7;
                    
    $jea $jj;
                    break;
                case 
    9:
                    
    $mon 8;
                    
    $jea $jj;
                    break;
                case 
    10:
                    
    $mon 9;
                    
    $jea $jj;
                    break;
                case 
    11:
                    
    $mon 10;
                    
    $jea $jj;
                    break;
                case 
    12:
                    
    $mon 11;
                    
    $jea $jj;
                    break;                                    
            }
        } else
        {
            switch(
    $mm)
            {
                case 
    1:
                    
    $mon 11;
                    
    $jea $jj-1;
                    break;
                case 
    2:
                    
    $mon 12;
                    
    $jea $jj-1;
                    break;
                case 
    3:
                    
    $mon 1;
                    
    $jea $jj;
                    break;
                case 
    4:
                    
    $mon 2;
                    
    $jea $jj;
                    break;
                case 
    5:
                    
    $mon 3;
                    
    $jea $jj;
                    break;
                case 
    6:
                    
    $mon 4;
                    
    $jea $jj;
                    break;
                case 
    7:
                    
    $mon 5;
                    
    $jea $jj;
                    break;
                case 
    8:
                    
    $mon 6;
                    
    $jea $jj;
                    break;
                case 
    9:
                    
    $mon 7;
                    
    $jea $jj;
                    break;
                case 
    10:
                    
    $mon 8;
                    
    $jea $jj;
                    break;
                case 
    11:
                    
    $mon 9;
                    
    $jea $jj;
                    break;
                case 
    12:
                    
    $mon 10;
                    
    $jea $jj;
                    break;                                    
            }    
        }
    return 
    $months[$mon] . ' ' $jea;        

    Cristiano
    ---
    Originariamente inviato da rebelia : solo un nerd puo' pensare di tacchinare in un forum di informatica

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da wider
    Giusto... non ci avevo pensato a mktime.... mannaggia.... :rollo:
    capita.

  7. #7
    ultimamente mi stà capitando troppo spesso di non pensare alla soluzione più ovvia....
    Cristiano
    ---
    Originariamente inviato da rebelia : solo un nerd puo' pensare di tacchinare in un forum di informatica

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.