Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Date in PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    9

    Date in PHP

    Salve.
    E' la prima volta che mi rivolgo ad un forum. Chissà se qualcuno può aiutarmi:
    Passando da ASP a PHP ho incontrato non pochi problemi con la gestione delle date.
    Sto lavorando su un sito internet commerciale e sto passando pian piano a PHP.
    Ho a che fare con diversi formati di data e non sempre riesco ad impostare gli inserimenti quindi vorrei trovare un sistema per trasformare tutti i tipi di data in un classico "dd/mm/yyyy".
    Però dal database (MSSQL) mi arrivano in formato "dd mmm yyyy", "mm/dd/yyyy", "dd mmm yyyy hh:mm:ss", ecc... quindi non posso fare una funzione che mi scomponga la data come fosse una stringa.
    Suggerimenti?

  2. #2
    Codice PHP:
    // $data_orig = data che prendi dal database
    $data date("d/m/Y"strtotime($data_orig)); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    9
    Grazie mille per la risposta.
    Ma la soluzione l'ho già provata: solo in alcuni casi mi ritorna il timestamp. La maggior parte delle volte, non mi ritorna nulla sia con le date nel formato DD/MM/YYYY (formato delle input box) sia con le date nel formato DD MMM YYYY HH:MM (prelevate dal database SQL).
    E' questo che mi fa impazzire.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    9
    E poi la stessa funzione:

    function DataDMY($DataPass) {
    // controllo che siano state passate le due date
    if (empty($DataPass)) { return; }

    // riformo la data
    $DataPass = date("d/m/Y", strtotime((string)$DataPass));

    // ritorno la data formattata
    return ($DataPass);
    }

    mi ritorna in un casp (Data letta da db - strtotime() - DataDMY()):
    18 feb 2009 0:00 - 1234911600 - 18/02/2009

    e in un altro caso (Data letta da db - strtotime() - DataDMY()):
    25 mag 2006 0:00 - - 01/01/1970

    Perchè?!?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    9
    Ho capito. Mi rispondo da solo:

    strtotime() vuole le date in formato inglese!!: MM/DD/YYYY e non DD/MM/YYYY, dd mmm yyyy con "mmm" in inglese! e non in italiano!!

    Grazie comunque.

    A questo punto la domanda però che mi sorge è: come faccio a riconoscere se una data inserita è nel formato inglese, soprattutto nel caso dei text box? (es: 01/02/2009 è 1 febbraio o 2 gennaio?)

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.