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

    PHP e R&OS - Codifica della data

    Ciao a tutti!
    Ho riscontrato un grosso problema nell'output del file PDF per la data.

    Genero la classe $pdf per la creazione del documento pdf e richiamo il metodo ezText per l'inserimento del testo nella pagina.
    Il problema è che la data me la da sempre 01 Gennaio 1970.

    Mi spiego meglio!

    Se utilizzo $pdf->ezText(date("d/m/Y")) funziona tutto alla perfezione, la data la stampa correttamente nel file PDF, se invece utilizzo $pdf->ezText(date("d/m/Y", miounixtime())) mi da come output 01/01/1970, se sostituisco a miounixtime() 1282949738 (valore unixtime qualsiasi) la data la stampa correttamente.

    Considerate che al posto della funzione miounixtime() io devo andare a richiamare un valore unixtime da una classe ma comunque il succo non cambia!!! Non ne vuole sapere di scrivere la data.

    Ho provato anche a fare un explode della data ed a ricostruirla successivamente inserendola direttamente come array all'interno del metodo ezText, ma nulla da fare.

    A schermo la stampa correttamente ma nel file PDF non ne vuole proprio sapere!!!

    Qualcuno mi può dare una mano?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    764
    cosa ti restituisce
    print miounixtime()?

  3. #3
    Mi restituisce 1281420000 che il valore unixtime ma la data scritta nel file PDF è sempre 01 gennaio 1970. Se invece scrivo direttamente 1281420000, mi da la data corretta.

    Ho provato ad inserire la funzione time() al posto del miounixtime() e la data la restituisce correttamente.

    ti posto una parte del codice per farti meglio capire:

    $data=(int)$_POST['data']; recupero la data (viene selezionata attraverso <select> che ha per <option> value già formattati unixtime)

    creo questi due oggetti:
    $odg = new ODG($data); //classe per la creazione dell'ordine del giorno

    come variabili di classe ODG ho:
    giorno = data passata con $data (impostata come unixtime alle ore 08.00)
    inizio = giorno + 24 ore
    fine = inizio + 24 ore

    $numodg=date("z",$odg->showvar('giorno'));
    $dataodg=date("d-m-Y",$odg->showvar('giorno')); //showvar($nome) ritorna il valore delle varibili di classe passandogli la chiave dell'indice dell'array che le contiene
    $periodoInizio=date("d-m-Y",$odg->showvar('inizio'));
    $periodoFine=date("d-m-Y",$odg->showvar('fine'));

    $giorno="ORDINE DEL GIORNO N.$numodg DEL $dataodg";
    $periodo="(per il periodo dal ".$periodoInizio." al ".$periodoFine.")\n";
    $filename="odg".date("Ymd",$odg->showvar('giorno')).".pdf";

    se vado a fare echo delle varibili $giorno, $periodo e $filename, viene scritto tutto correttamente ma se invece faccio
    $pdf->ezText($giorno);
    $pdf->ezText($periodo);
    $pdf->ezStream($filename);

    viene generato un file denominato 19700101.pdf che contiene le seguenti scritte:
    ORDINE DEL GIORNO N.0 DEL 01/01/1970;
    (per il periodo dal 02/01/1970 al 03/01/1970)

    La cosa che m'insospettisce è che nel secondo rigo la data incrementa di 24 ore ma non capisco perché sulla tabella generata nella pagina web viene scritta correttamente ed invece nel file php no.

    Pensavo fosse un problema che prendesse la variabile $data come stringa, allora ho inserito (int) davanti per fare la conversione a numero intero $data=(int)$_POST['data'];, ma nulla di fatto.
    Non riesco proprio a capire dove sia il problema. Sono più di due giorni che ci sto battendo la testa!!!

  4. #4
    Ho provato anche a passargli direttamente il valore $data ma nulla da fare. Il risultato è sempre lo stesso!

    La cosa che mi sconvolge è che sulla pagina web la stampa correttamente ma sul file PDF no. D'altro canto se invece di passargli una variabile gli passo il valore numerico oppure inserisco la funzione time() la data la scrive correte da ambo le parti.

  5. #5

    RISOLTO!!!

    Il problema era nell'invio dei dati come POST!!!

    Sostituendo il metodo d'invio dei dati e settandolo su GET riesco a produrre la pagina in PDF.

    Il dubbio che comunque mi rimane è il perché con POST non avviene e soprattutto perché sulla pagina web è correttamente visualizzata e sul file PDF no!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.