Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264

    Ciclo per aggiungere mese a data....

    Ciao a tutti

    sto provando questo banale script ma non funziona:

    <?php
    for ($k=0;$k<=11;$k++){


    echo $data=date("Y-m-d H:i:s",mktime(date("H"),date("i"),date("s"),date(" m")+$k,date("d"),date("Y")));
    echo "
    ";

    }


    ?>


    Sembra che passi da gennaio a marzo a maggio... saltando dei mesi;

    come mai??
    L'ho controllato dieci volte e mi pare tutto perfetto....

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    semplice oggi è il 31-01-2011 se aggiungi un mese si va al 31-2-2011 che non esiste e guindi fa 28-02-2011 + 3 giorni ovvero 03-03-2011

  3. #3
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    Originariamente inviato da bstefano79
    semplice oggi è il 31-01-2011 se aggiungi un mese si va al 31-2-2011 che non esiste e guindi fa 28-02-2011 + 3 giorni ovvero 03-03-2011

    ahhhhhh

    quindi come posso risolvere?

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    così

    Codice PHP:
    <?php
    function LastDayOfMonth($month){
        
    $DaysInMonth = array(312831303130313130313031); 
        
    $LastDay $DaysInMonth[$month 1];
        return 
    $LastDay;
    }



    for (
    $k=0;$k<=11;$k++){

    if(
    checkdate(date("m")+$k,date("d"),date("Y")))
    {
        echo 
    $data=date("Y-m-d H:i:s",mktime(date("H"),date("i"),date("s"),date("m")+$k,date("d"),date("Y")));
    }
    else
    {
        echo 
    $data=date("Y-m-d H:i:s",mktime(date("H"),date("i"),date("s"),date("m")+$k,LastDayOfMonth((date("m")+$k)%12),date("Y")));
    }
    echo 
    "
    "
    ;

    }


    ?>

  5. #5
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    Originariamente inviato da bstefano79
    così

    Codice PHP:
    <?php
    function LastDayOfMonth($month){
        
    $DaysInMonth = array(312831303130313130313031); 
        
    $LastDay $DaysInMonth[$month 1];
        return 
    $LastDay;
    }



    for (
    $k=0;$k<=11;$k++){

    if(
    checkdate(date("m")+$k,date("d"),date("Y")))
    {
        echo 
    $data=date("Y-m-d H:i:s",mktime(date("H"),date("i"),date("s"),date("m")+$k,date("d"),date("Y")));
    }
    else
    {
        echo 
    $data=date("Y-m-d H:i:s",mktime(date("H"),date("i"),date("s"),date("m")+$k,LastDayOfMonth((date("m")+$k)%12),date("Y")));
    }
    echo 
    "
    "
    ;

    }


    ?>

    Sei gentilissimo!

    Grazie mille!

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    prego, di niente

  7. #7
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    Originariamente inviato da bstefano79
    prego, di niente
    certo che mi pare assurdo che php non capisca da solo che aggiungendo un mese... non deve andare in bug....

    mah....

  8. #8
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    mica è colpa di php quando date("d") è 31

  9. #9
    Oppure usando gli strumenti che PHP mette a disposizione:

    Codice PHP:
    foreach ( range(011) as $offset ) {
        
    $date date('Y-m-d H:i:s'strtotime("+$offset month"));
        echo 
    "$date
    "
    ;


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.