A voir également:
- Php-Convertir un entier sous la forme 01,02..
- Mise en forme conditionnelle excel - Guide
- Convertir youtube en mp3 avec audacity - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Faire un trou dans une forme illustrator ✓ - Forum Illustrator
- Retour a la ligne php ✓ - Forum PHP
4 réponses
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
10 mai 2008 à 11:58
10 mai 2008 à 11:58
Bjr
Utilise la fonction str_pad() de PHP
https://www.php.net/manual/fr/function.str-pad.php
exemple :
PhP
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
Utilise la fonction str_pad() de PHP
https://www.php.net/manual/fr/function.str-pad.php
exemple :
<html> <head> </head> <body> <?php // Complète une chaîne par la gauche avec des zéros selon la taille spécifiée function lpad_zero($chaine,$taille) { return str_pad($chaine,$taille,"0",STR_PAD_LEFT); } $a=1; echo lpad_zero($a,2); ?> </form> </body> </html>--
PhP
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
10 mai 2008 à 21:06
10 mai 2008 à 21:06
Oui certe mais je pensais plus à une truc du genre
Autre variante en utilisant uniquement sprintf()
Think different, think php ... ;-)
<?php // Complète une chaîne par la gauche avec des zéros selon la taille spécifiée function lpad_zero($chaine,$taille) { return str_pad($chaine,$taille,"0",STR_PAD_LEFT); } function difheure($heuredeb,$heurefin) { $hd=explode(":",$heuredeb); $hf=explode(":",$heurefin); $hd[0]=(int)($hd[0]);$hd[1]=(int)($hd[1]);$hd[2]=(int)($hd[2]); $hf[0]=(int)($hf[0]);$hf[1]=(int)($hf[1]);$hf[2]=(int)($hf[2]); if($hf[2]<$hd[2]){$hf[1]=$hf[1]-1;$hf[2]=$hf[2]+60;} if($hf[1]<$hd[1]){$hf[0]=$hf[0]-1;$hf[1]=$hf[1]+60;} if($hf[0]<$hd[0]){$hf[0]=$hf[0]+24;} return (lpad_zero($hf[0]-$hd[0],2).":".lpad_zero($hf[1]-$hd[1],2).":".lpad_zero($hf[2]-$hd[2],2)); } $hdeb1="01:00:00"; $hfin1="02:00:00"; $jour1 = difheure($hdeb1,$hfin1); echo $jour1; ?>
Autre variante en utilisant uniquement sprintf()
<?php function difheure($heuredeb,$heurefin) { $hd=explode(":",$heuredeb); $hf=explode(":",$heurefin); $hd[0]=(int)($hd[0]);$hd[1]=(int)($hd[1]);$hd[2]=(int)($hd[2]); $hf[0]=(int)($hf[0]);$hf[1]=(int)($hf[1]);$hf[2]=(int)($hf[2]); if($hf[2]<$hd[2]){$hf[1]=$hf[1]-1;$hf[2]=$hf[2]+60;} if($hf[1]<$hd[1]){$hf[0]=$hf[0]-1;$hf[1]=$hf[1]+60;} if($hf[0]<$hd[0]){$hf[0]=$hf[0]+24;} return sprintf("%02s:%02s:%02s",$hf[0]-$hd[0],$hf[1]-$hd[1],$hf[2]-$hd[2]); } $hdeb1="01:00:00"; $hfin1="02:00:00"; $jour1 = difheure($hdeb1,$hfin1); echo $jour1; ?>
Think different, think php ... ;-)
Dis donc, tu l'aurais pas pris sur ASP-PHP mon bout de code par hasard ;)
Alors pourquoi ne pas avoir posé ta question là-bas ?
DB77
Alors pourquoi ne pas avoir posé ta question là-bas ?
DB77
10 mai 2008 à 18:47
Merci pour ta réponse. Seule ombre au tableau, si le nombre d'heures excède 9h, est-ce que cette solution ne va pas m'écrire 010:00:00 au lieu de 10:00:00 ?
A+ Olive33
10 mai 2008 à 19:45
Par exemple, pour 13:30:00 - 11:00:00 je veux obtenir : 02:30:00.
- Sans str_pad, j'obtiens 2:30:0
- Avec str pad j'obtiens 02:30:0 (en poussant avec STR_PAD_BOTH je peux même régler le problème des secondes)
Maintenant pour 13:00:00 - 11:00:00 je veux obtenir : 02:00:00
- Là ça se complique car str_pad me règle à gauche, à droite ou au milieu, ça va donc m'afficher un truc du genre 02:0:00. reste donc le problème des minutes...
Merci,
A+ Olive33