• User Attivo

    Grazie ma mi restituisce questo errore

    A non well formed numeric value encountered in <b>xxx.php
    

    Forse pui' essere utile se l'elemento $data che estraggo proviene da un ciclo while
    [PHP] $data = $company_hits->Fields('data');[/PHP]


  • User

    E' errato il suggerimento proposto da dymissy per il motivo che la funzione date accetta, come parametro facoltativo, un timestamp e non una data formattata, per cui hai bisogno di convertire la data da te estratta prima di riformattarla come credi.

    Sostanzialmente, il codice che ti serve è il seguente:
    [PHP]echo date("m-d-Y", strtotime($data));[/PHP]

    :ciauz:


  • User Attivo

    Ha ragione Blancks,
    ho dato per scontato che fosse il timestamp senza pensare che è già stata formattata la data.

    Sorry.


  • User Attivo

    Perfetto!
    Vi ringrazio!!!
    Si pui' impostare la lingua italiana e che visualizzi il nome del mese in automatico in italiano ? Ad esempio - sabato 15 ottobre 2009 - ?
    Oppure bisogna inserire i mesi in un array e scomporre la data?

    Grazie!!
    Mitici e velocissimi!!


  • User

    Ti conviene fare una funzione apposita a questo punto:

    [php]function date_format($data)
    {
    $ts = strtotime($data);

    $mese = array();
    $mese[1] = 'Gennaio';
    $mese[2] = '.....'; #etc per tutti e 12 i mesi
    
    $giorno = array();
    $giorno['Mon'] = 'Lunedì';
    $giorno['Tue'] = 'Martedì'; .. per tutti e 7 i giorni
    
    return $giorno[date("D", $ts)] . " " . date("j", $ts) . " " . $mese[date("n", $ts)] . " " . date("Y", $ts);
    

    }[/php]

    Così che poi ti basta richiamarla molto semplicemente dove ti serve:

    [php]$data = date_format($company_hits->Fields('data'));
    echo $data;[/php]

    Fammi sapere 😉

    Referenze di supporto:


  • User Attivo

    Ciao, ho provato a inserire quello che mi hai suggerito

    [PHP]<?

    function date_format($data)
    {
    $ts = strtotime($data);

    $mese = array();
    $mese[1] = 'Gennaio';
    $mese[2] = 'Febbraio'; 
    $mese[3] = 'Marzo';
    $mese[4] = 'Aprile';
    $mese[5] = 'Maggio';
    $mese[6] = 'Giugno';
    $mese[7] = 'Luglio';
    $mese[8] = 'Agosto';
    $mese[9] = 'Settembre';
    $mese[10] = 'Ottobre';
    $mese[11] = 'Novembre';
    $mese[12] = 'Dicembre';
    
    
    $giorno = array();
    $giorno['Mon'] = 'Lunedi';
    $giorno['Tue'] = 'Martedi'; 
     $giorno['Wed'] = 'Mercoledi'; 
      $giorno['Thu'] = 'Giovedi'; 
       $giorno['Fri'] = 'Venerdi'; 
        $giorno['Sat'] = 'Sabato'; 
         $giorno['Sun'] = 'Domenica'; 
    
    
    return $giorno[date("D", $ts)] . " " . date("j", $ts) . " " . $mese[date("n", $ts)] . " " . date("Y", $ts);
    

    }

    while (!$company_hits->EOF) {
    $id = $company_hits->Fields('id');
    $data = date_format($company_hits->Fields('data'));
    $link = $company_hits->Fields('link');

    $i++;
    

    ?>[/PHP]

    Poi ho aggiunto
    [PHP]echo $data; [/PHP]

    E mi restituisce questo errore:

    Cannot redeclare date_format() in xxxxx.php on line 237
    

    cioè a questa riga
    [PHP] return $giorno[date("D", $ts)] . " " . date("j", $ts) . " " . $mese[date("n", $ts)] . " " . date("Y", $ts);[/PHP]


  • User

    Devo aver adoperato il nome di una funzione evidentemente già implementata da php :giggle:

    Prova a sostituire il nome della funzione con mydate, nella dichiarazione e nel richiamo 😄


  • User Attivo

    Tutto ok!:)
    Cambiato il nome della funzione ed è tutto perfetto come volevo!!
    Grazie!


  • User

    Salve,
    Ho provato ad usare questa funzione però mi da un errore 😞
    Ecco il codice:
    [PHP] <?

    function mydate($data)
    {
    $ts = strtotime($data);

    $mese = array();
    $mese[1] = 'Gennaio';
    $mese[2] = 'Febbraio'; 
    $mese[3] = 'Marzo';
    $mese[4] = 'Aprile';
    $mese[5] = 'Maggio';
    $mese[6] = 'Giugno';
    $mese[7] = 'Luglio';
    $mese[8] = 'Agosto';
    $mese[9] = 'Settembre';
    $mese[10] = 'Ottobre';
    $mese[11] = 'Novembre';
    $mese[12] = 'Dicembre';
    
    
    $giorno = array();
    $giorno['Mon'] = 'Lunedi';
    $giorno['Tue'] = 'Martedi'; 
     $giorno['Wed'] = 'Mercoledi'; 
      $giorno['Thu'] = 'Giovedi'; 
       $giorno['Fri'] = 'Venerdi'; 
        $giorno['Sat'] = 'Sabato'; 
         $giorno['Sun'] = 'Domenica'; 
    
    
    return $giorno[date("D", $ts)] . " " . date("j", $ts) . " " . $mese[date("n", $ts)] . " " . date("Y", $ts);
    

    }

    while (!$company_hits->EOF) {
    $id = $company_hits->Fields('id');
    $data = mydate($company_hits->Fields('data'));
    $link = $company_hits->Fields('link');

    $i++;
    

    }

    echo $data;

    ?>[/php]

    Ed ecco l'errore:
    Fatal error: Call to a member function on a non-object in /membri/rcayla2/mydate.php on line 37

    Potete aiutarmi??


  • User

    Nella funzione il blocco col while è il modo in cui l'utente prima di te richiamava il parametro della data.

    La funzione mydate devi istanziarla a parte ad inizio file e richiamarla dove ti serve.

    esempio:
    [PHP]<?php
    function mydate($data)
    {
    $ts = strtotime($data);

    $mese = array();
    $mese[1] = 'Gennaio';
    $mese[2] = 'Febbraio'; 
    $mese[3] = 'Marzo';
    $mese[4] = 'Aprile';
    $mese[5] = 'Maggio';
    $mese[6] = 'Giugno';
    $mese[7] = 'Luglio';
    $mese[8] = 'Agosto';
    $mese[9] = 'Settembre';
    $mese[10] = 'Ottobre';
    $mese[11] = 'Novembre';
    $mese[12] = 'Dicembre';
    
    
    $giorno = array();
    $giorno['Mon'] = 'Lunedi';
    $giorno['Tue'] = 'Martedi'; 
    $giorno['Wed'] = 'Mercoledi'; 
    $giorno['Thu'] = 'Giovedi'; 
    $giorno['Fri'] = 'Venerdi'; 
    $giorno['Sat'] = 'Sabato'; 
    $giorno['Sun'] = 'Domenica'; 
    
    
    return $giorno[date("D", $ts)] . " " . date("j", $ts) . " " . $mese[date("n", $ts)] . " " . date("Y", $ts);
    

    }

    echo mydate('2009-10-18'); #stamperà: domenica 18 ottobre 2009

    ?>[/PHP]