[php + regexp] un peu d'aide siouplé c pour manger ....

un peu d'aide siouplé c pour manger .... [php + regexp] - Programmation

Marsh Posté le 04-09-2002 à 17:50:11    

salut,
je dois faire une fonction de rajout de temps au format string ...
ces temps sont de cette forme:
 
hhhh:mm:ss(.ss)
 
les parenthèses indiquent l'optionnel
 
j'ai entendu qu'avec des regexp je pourrais extraire facilement les différentes parties de ce temps et faire mes calculs ... eske kelkun saurait avec quelle fonction regexp je pourrais faire en gros
 
$mon_temps = fct_regexp($string_du_temps,$motif);
 
et après avoir  
 
$mon_temps[0] // ===> correspondant au hhhh
$mon_temps[1] // ===> correspondant au mm
 
...
 
 et ainsi de suite me permettant ensuite de faire mes calculs ...
 
 
merci de votre aide et à bientôt !


---------------
mangez du mozilla c le futur, c votre DESTIN ! http://www.mozilla.org/releases/
Reply

Marsh Posté le 04-09-2002 à 17:50:11   

Reply

Marsh Posté le 04-09-2002 à 18:21:45    

Si tous les éléments de l'heure sont séparés par un ":", tu auras aussi vite fait de faire un split :
 
$mon_temps = split(":", $string_du_temps);


Message édité par _Mac_ le 04-09-2002 à 18:24:03
Reply

Marsh Posté le 04-09-2002 à 19:13:03    

ouais c ske je fais en ce moment, mais je pense qu'il ya plus élégant que ça :sarcastic:


---------------
mangez du mozilla c le futur, c votre DESTIN ! http://www.mozilla.org/releases/
Reply

Marsh Posté le 04-09-2002 à 22:00:47    

:spookie: HOT :spookie:  
 :o live :o  
 :spookie: HARDCORE BONDAGE :spookie:

Reply

Marsh Posté le 04-09-2002 à 22:01:57    

y'a pas des fonctions pour date/time en php :heink:

Reply

Marsh Posté le 04-09-2002 à 22:09:25    

ouais mais elle ne prennent pas en charge ce format :( c un format que je dois respecter malheureusement ...  :sweat:

Reply

Marsh Posté le 04-09-2002 à 22:12:45    

ben a priori le split c pas trop degueu alors

Reply

Marsh Posté le 04-09-2002 à 22:34:07    

ta un autre post, suffit d'éditer  :kaola:

Reply

Marsh Posté le 04-09-2002 à 22:44:18    

heu je vois pas trop "hhhh" comme format de l'heure...
 
En tout cas laisses tomber les regex, utilise plutot mktime
 

Code :
  1. fct_regexp($string_du_temps,$rajout)
  2. {
  3. $tps = split(":",$string_du_temps);
  4. $rajout = split(":",$rajout);
  5. $new = date("H:m:s", mktime ($tps[0]+$rajout[0],$tps[1]+$rajout[1],$tps[2]+$rajout[2],0,0,0));
  6. return $new;
  7. }


 
L'interêt est que normalement si tu rajoute 30 sc a 35 sc, il passe tout seul la minute...
 
Edit:
Ah oui et si tu veux avoir :
$mon_temps[0] // ===> correspondant au hhhh  
$mon_temps[1] // ===> correspondant au mm  
 
tu rajoute = ^
$new = split(":",$new);
 
et ca te donnera $mon_temps = fct_regexp($string_du_temps,$rajout)


Message édité par wilecoyote le 04-09-2002 à 22:47:11
Reply

Marsh Posté le 05-09-2002 à 10:24:55    

yo!
merci de ton aide mais je pense que ça va être un peu galère aussi de faire comme ça, c vrai que ça m'évite quelques manips du style 60s = 1m .. mais je n'ai pas de maximum à 24h, je peux avoir 350h etc... donc je crois que je vais la faire à la mano ... le seul truc qui me gêne c de checker que les input aient le bon format :( mais bon avec une bonne regexp ça devrait passer j'espère  :sol: ok coolax
 
de plus le fait que les secodnes soient codées en ss.ss n'aide pas bcp :/
 
en tout cas merci bien :)


Message édité par k666 le 05-09-2002 à 10:41:21

---------------
mangez du mozilla c le futur, c votre DESTIN ! http://www.mozilla.org/releases/
Reply

Marsh Posté le 05-09-2002 à 10:24:55   

Reply

Marsh Posté le 05-09-2002 à 11:20:44    

Tu peux écrire quelques exemples de dates selon ton format ?

Reply

Marsh Posté le 05-09-2002 à 11:50:15    

en fait c pas des dates, c'est des temps, exemples:
 
101:01:01.1
 
0003:59:59.99
 
1:00:00
 
 
et donc fo les rajouter :/
 
c pas compliquaid mais bon j'aimerais faire clean :d


---------------
mangez du mozilla c le futur, c votre DESTIN ! http://www.mozilla.org/releases/
Reply

Marsh Posté le 05-09-2002 à 11:58:36    

preg_match("/([0-9]{1,4}):([0-5][0-9]):([0-5][0-9])\.([0-9]{1,2})/", $string_du_temps, $mon_temps);


 
Tu récupère tout ça dans $mon_temps.
 
 
J'ai pas testé, mais ça devrait s'apporcher de ce que tu cherches.


Message édité par gm_superstar le 05-09-2002 à 11:58:55
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed