Visualizzazione dei risultati da 1 a 4 su 4

Discussione: errore funzione

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209

    errore funzione

    Mi aiutate a correggere questa funzione che non va

    Codice PHP:

    function data($data)
    {
    // questi sono i dati specificati dall'utente
    $data=explode("-",$data);
    $giorno=$data[2];
    $mese=$data[1];
    $anno=$data[0];
    //Questa la funzione che calcola la data dopo 10 giorni
    //dalla data specificata
    echo $data=date("d/m/Y",mktime(0,0,0,$mese,$giorno,$anno));
    }
    $data="2010-05-26";
    $data($data); 
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    come faccio poi a trovare il giorno


    25-05-2010

    25=martedi

  3. #3
    Allora.... una risposta alla volta.
    Innanzi tutto io snellirei un minimo la tua funzione come segue.
    Codice PHP:
    function data_piu_10($data) { 
       list (
    $a$m$g) = explode("-"$data); 
       
    $ts_data mktime(000$m$g$a);
       
    $giorni 60 60 24 10;
       
    $data_succ $ts_data $giorni;
       
    /*
           fatti ritornare il timestamp della data
           inserita dall'utente, perché ci si lavora meglio
       */
       
    return $data;

    $data "2010-05-26"
    echo 
    data_piu_10($data);
    // in questo modo stampi a video il timestamp della data 
    Ho snellito un po' la funzione, ed avrei anche potuto limare altre linee di codice, ma volevo farti capire.
    Peraltro, per uscire dalla funzione e ritornare il risultato, devi usare la parola chiave RETURN e non echo, vedi l'esempio che capisci al volo.
    Questo per ricalcare il tuo esempio.

    Per la seconda domanda, invece, devi sfruttare quello che trovi nel manuale ufficiale, alla voce relativa alla funzione
    DATE().
    Cito:
    N - ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 (for Monday) through 7 (for Sunday)
    Quindi, puoi sfruttare le "letterine" magiche della funzione per il tuo scopo.
    Riprendo l'esempio di sopra e ne modifico una parte.
    Codice PHP:
    $array_giorni_settimana[1] = "Lunedì";
    $array_giorni_settimana[2] = "Martedì";
    $array_giorni_settimana[3] = "Mercoledì";
    $array_giorni_settimana[4] = "Giovedì";
    $array_giorni_settimana[5] = "Venerdì";
    $array_giorni_settimana[6] = "Sabato";
    $array_giorni_settimana[7] = "Domenica";

    function 
    data_piu_10($data) { 
       list (
    $a$m$g) = explode("-"$data); 
       
    $ts_data mktime(000$m$g$a);
       
    $giorni 60 60 24 10;
       
    $data_succ $ts_data $giorni;

       return 
    $data;


    $data "2010-05-26"
    $timestamp_data data_piu_10($data);

    $giorno date("d"$timestamp_data);
    $num_giorno_settimana date("N"$timestamp_data);
    $giorno_settimana $array_giorni_settimana[$num_giorno_settimana];

    echo 
    "$giorno = $giorno_settimana"
    Non l'ho testato e l'ho scritto direttamente qui nel forum, ma dovrebbe funzionare.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Codice PHP:
    // trasforma data da formato yyyy-mm-dd a dd/mm/yyyy
    // e aggiunge 10 giorni
    function data_piu_10($data) {
        return 
    date('d/m/Y'strtotime($data.' +10 days'));
    }

    // restituisce il nome del giorno di una data fornita
    // nel formato dd-mm-yyyy
    function giorno($data) {
        list(
    $g$m$a) = explode('-'$data);
        
    setlocale('LC_ALL''it_IT.utf-8');
        return 
    strftime('%A'mktime(0,0,0,$m,$g,$a));
    }

    echo 
    data_piu_10('2010-05-26');
    echo 
    giorno('25-05-2010'); 

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.