Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema con DateTime

  1. #1

    Problema con DateTime

    ciao!
    ha una funzione passo una data che mi arriva stringa.
    la devo trasformare in data, formattarla a pessarla al db.
    solo che il programma si blocca:
    Codice PHP:
    var_dump($creazione);
    $d = new DateTime(strtotime($creazione));
    // QUI PARE BLOCCARSI
    echo 'OK';
    $d->format('Y-m-d'); 
    l'outpu è questo:
    codice:
    string(10) "10/02/2014"
    ma OK non esce, quindi penso si blocchi li dove c'è il commento.
    ho provato a fare il dumo di $d, ma non esce nulla.
    idee??

  2. #2
    risolto così:
    Codice PHP:
    $d date('Y-m-d'strtotime($creazione)); 
    e tanti saluti!!

  3. #3
    se tu avessi letto il manuale... http://www.php.net/manual/it/datetime.construct.php
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    ho letto il manuale.
    il costruttore vuole una stringa.
    mettendoci il valore "secco" ottenevo lo stesso comportamento.
    girando sul web avevo esempi come il mio (da quanto leggevo funzionavano, ma non a me).
    sinceramente non saprei dirti dove sbagliavo.

  5. #5
    perchè gli passavi strtotime, che non è una stringa, ma un time appunto, tantè che:

    Codice PHP:

    <?php

    $test 
    '2014-02-12';

    $data = new DateTime($test);

    echo 
    $data->format('d-m, Y');

    echo 
    "\n\n";

    $data2 = new DateTime(strtotime($test));

    echo 
    $data->format('d-m, Y');
    restituisce:

    codice:
    12-02, 2014    #### PRIMO format(), OUTPUT CORRETTO
    
    PHP Fatal error:  Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (1392159600) at position 7 (6): Unexpected character' in /xxx/test.php:11
    Stack trace:
    #0 /xxxx/test.php(11): DateTime->__construct('1392159600')
    #1 {main}
      thrown in /xxx/test.php on line 11
    perchè il costruttore di DateTime si aspetta una stringa rappresentante una data, non il timestamp restituito da strtotime
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    si infatti io avevo fatto così al principio.
    solo che non mi mostrava nulla lo stesso.

    lo so che strtotime è sbagliato.
    era una prova fatta vedendo diversi forum / guide (sbagliate ovviamente).

    vabbè riproverò.
    grazie!

  7. #7
    ok scovato il problema.
    gli da fastidio la data se arriva in questo formato: 31/01/2014.
    ho fatto un replace con il - e tutto funziona.

  8. #8
    Quote Originariamente inviata da fermat Visualizza il messaggio
    ok scovato il problema.
    gli da fastidio la data se arriva in questo formato: 31/01/2014.
    ho fatto un replace con il - e tutto funziona.
    bono a sapersi, ma lavora sempre con la data in Y-m-d, quindi 2014-01-31, ti conviene anche quando usi plugin vari di jquery et simili per far scegliere la data ad un utente normalmente puoi specificare il formato con cui ti inviano in post il dato, mai usare formati regionali già è un casino con l'iso la gestione delle date.
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    si si infatti io lavoro con quel formato sul mio db.
    quella data mi arriva da un altro sistema (unix con informix) tramite un file txt.
    quindi devo trasformarla prima.
    cmq pare che adesso vada!

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.