Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2022
    Messaggi
    84

    PHP - problema con lettura della data da una cella di un file .xls (26 ore di differenza)

    Buonasera,

    tramite PHP leggo un file excel (.xls), ma ho un problema con la lettura delle celle dove sono contenute delle date. Non me ne sono accorto subito, perché pensavo funzionasse correttamente. In pratica, dopo averle lette, mi risulta sempre una differenza di 26 ore. Per ovviare al problema ho realizzato questo script:

    Codice PHP:
    $accProg str_replace("/""-"$data->sheets[0]['cells'][$i][3]);
    $accProg strtotime("$accProg - 26 hour");
    $accProg date("d-m-Y H:i"$accProg); 
    Prima di leggere i file, devo convertirli da "Cartella di lavoro di Excel" a "Cartella di lavoro di Excel 97-2003", ma penso sia normale. I file .xls li leggo con una classe (non ricordo il nome ma ho i seguenti file in una cartella Excel: reader.php, OLERead.php e oleread.inc).


    Da cosa potrebbe dipendere?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    192
    1) Secondo i documenti di Microsoft la data in Excel è intero (1 gennaio 1900 corrisponde al numero seriale 1), il suo output è una data testuale impostabile tramite pannello di controllo o altrove in Excel.
    2) dd/mm/yyyy mentre in php sostituisci / con - ma strtotime senza timezone o offeset crea intero basato sull'impostazione locale della data (impostato tramite php.ini o altro tipo di codice php).

    Se la tua data di input è corretta poi in php la imposti come
    Codice PHP:
    $date = new DateTime('11-10-2022', new DateTimeZone('Europe/Rome'));
    //echo strtotime('11-10-2022 Europe/Rome');
    var_dump($date->format('d-m-Y')); 
    https://www.php.net/manual/en/datetime.formats.date.php
    Ultima modifica di darbula; 11-10-2022 a 21:25

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2022
    Messaggi
    84
    Nel file excel la data è memorizzata in questo modo: 03/10/2022 06:30:00

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    192
    Si il tuo output (input intero nel file .xls), se cambi la stringa con la tua, che cosa ti stampa var_dump? (Il problema quasi certamente è la funzione date come spiegato precedentemente).

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.