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

    riconoscere il formato data

    Ho un form con 2 campi data: data_nascita e data_morte
    Nel DB i 2 campi hanno il formato date, quindi 1802-02-28 (aaaa-mm-gg).
    La domanda è questa:
    visto che l'inserimento è libero, come faccio, nel processo al form a capire in che formato è stata inserita la data?
    gg-mm-aaaa oppure aaaa-mm-gg
    Oppure ancora
    gg/mm/aaaa o aaaa/mm/gg
    Vabbè che per il separatore posso fare un str_replace("-", "/", $data) per avere un separatore che può servirmi, ma mi rimane difficile capire il formato data che mi viene restituito per poterlo eventualmente dare in pasto alla query nel giusto formato (aaaa/mm/gg).

    Grazie per la risposta

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Beh con qualche espressione regolare si puo facilmente fare

    Codice PHP:
    $data "2012/10/5";
    if(
    preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}/",$data)) echo 'la data è in questo formato: xx/xx/xxxx';
    elseif(
    preg_match("/[0-9]{4}\/[0-9]{1,2}\/[0-9]{1,2}/",$data)) echo 'la data è in questo formato: xxxx/xx/xx'
    Il segno / sarebbe \/ non so perchè non lo prende l'editor

    Oppure studiati un po la libreria datetime, che è piuttosto completa:
    http://it2.php.net/manual/en/book.datetime.php

  3. #3
    Grazie per la celere risposta, RoTeam.
    Purtroppo non ho capito dove debbo sostituire "/" con "\/". In tutte le ricorrenze?

    Grazie ancora

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da micdas
    Grazie per la celere risposta, RoTeam.
    Purtroppo non ho capito dove debbo sostituire "/" con "\/". In tutte le ricorrenze?

    Grazie ancora
    $data = "2012/10/5";
    if(preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}/",$data)) echo 'la data è in questo formato: xx/xx/xxxx';
    elseif(preg_match("/[0-9]{4}\/[0-9]{1,2}\/[0-9]{1,2}/",$data)) echo 'la data è in questo formato: xxxx/xx/xx';


  5. #5
    Trovato, forse:
    dopo i due {1,2} e prima di [0-9] forse in questo modo (speriamo che ora vengano presi

    codice:
    preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}/",$data_letta)

  6. #6
    OK, grazie ancora.


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.