Comment transformer une chaine de caractere de ce style 20/10/2004 en un type date pour l'inserer dans un champs date d'une base de données ???
Comment transformer une chaine de caractere de ce style 20/10/2004 en un type date pour l'inserer dans un champs date d'une base de données ???
Salut,
ce que je te propose n'est pas parfait a mon avis, mais moi, je m'en contente car pour l'instant je ne suis pas assez parano pour me prendre trop la tête...
il s'agit de convertir une chaîne de caractère représentant une date à la française en un TIMESTAMP UNIX. Ensuite en fonction du format du champ de ta base, je te laisse t'amuser avec la fonction date()
PS: le is_blank() est une fonction perso pas bien compliquée...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 /** * permet de convertir une chaine du type jj/mm/aaaa * en timestamp unix. */ function french_date_str2unix_timestamp( $p_date_str ){ if ( is_blank( $p_date_str ) ) return false; if ( 2 != substr_count( $p_date_str, '/' ) ) return false; list( $t_day, $t_month, $t_year ) = explode( '/', $p_date_str ); $t_day = (int)$t_day; $t_month = (int)$t_month; $t_year = (int)$t_year; if ( $t_day >= 1 && $t_day <= 31 && $t_month >= 1 && $t_month <=12 && $t_year >= 1000 && $t_year <= 9999 ) { return mktime( 0, 0, 0, $t_month, $t_day, $t_year ); } else { return false; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 /** * Vérifie si une chaine est vide ou pas * Une chaine composée uniquement d'espace est vide... */ function is_blank( $p_str ) { $p_str = trim( $p_str ); $str_len = strlen( $p_str ); if ( 0 == $str_len ) { return true; } return false; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
N'oubliez pas de cliquer surquand votre question à trouvé une solution.
Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!
Partager