Déjà mon deuxième post ici, faudrait pas qu'je m'habitue à trop me faire aider
Mon problème est simple (enfin non pas vraiment) : j'voudrais créer une regex pour analyser le contenu d'un champ de saisi et en faire sortir un timestamp avec mktime.
En plus clair :
- l'utilisateur voit un champ de saisi (input type text) et y rentre les infos
- il peut mettre une date : 18/10 ou 18/10/90 ou 18/10/1990
- il peut mettre une heure : 18h32 ou 18:32 ou 18h
- il peut mettre les deux : 18/10 18h ou 18/10/1990 18h32 ou etc ...
- après la regex se charge de récupérer les infos et la fonction php mktime transforme tout ça en un timestamp
Ce que j'ai fait :
Or si je fais un echo $timestamp_min; il me sort "-1" quoi qu'il arrive ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $tps_min = $_GET['tps_min']; $regex_tps = "#(([0-9]{1,2})/([0-9]{1,2})(/([0-9]{2,4}))?)?[ ]{0,3}(([0-9]{1,2})[h:]([0-9]{1,2})?)?#"; if (preg_match($regex_tps, $tps_min, $valeur_min)) { $jour = $valeur_min[2]; $mois = $valeur_min[3]; $annee = $valeur_min[5]; $heure = $valeur_min[7]; $minute = $valeur_min[8]; $timestamp_min = mktime('$heure', '$minute', '', '$mois', '$jour', '$annee'); }
Sauf si je ne remplis pas le champ, auquel cas il m'affiche la valeur par défaut que j'ai paramétrée ...
Quelqu'un a une idée de mon erreur ?
Partager