Page 1 sur 1

Retirer le 0 sur le jour d'une date

Posté : 08 juil. 2007, 13:56
par Alfala Bucro
Voila j'ai cette fonction la :
// Fonctions pour l'heure en FR
function DateFR1 ($texte) {
	list($date, $time) = explode(" ", $texte);
	list($year, $month, $day) = explode("-", $date);
	list($hour, $min, $sec) = explode(":", $time);
	$months = array("janvier", "février", "mars", "avril", "mai", "juin",
		"juillet", "août", "septembre", "octobre", "novembre", "décembre");
	$texte = "$day ".$months[$month-1]." $year  à ${hour}h${min}";
	
	return $texte;
}
Qui m'affiche donc : le 08 juillet 2007 à 13h36

mais j'aimerai retirer le 0 de 08.

comment je peux faire ?

Posté : 08 juil. 2007, 14:30
par chrislabricole
je pense que tu devrais essayer de le faire avec le str_replace()
str_replace('0','',$day)
:wink:


sa devrai donner un truc comme sa...
(débogue si il y a des bogues) :wink:
// Fonctions pour l'heure en FR
function DateFR1 ($texte) {
    list($date, $time) = explode(" ", $texte);
    list($year, $month, $day) = explode("-", $date);
    list($hour, $min, $sec) = explode(":", $time);
    $months = array("janvier", "février", "mars", "avril", "mai", "juin",
        "juillet", "août", "septembre", "octobre", "novembre", "décembre");
    $texte = str_replace('0','',$day).$months[$month-1].' '.$year.' à '.${hour}h${min};
    
    return $texte;
} 

Posté : 08 juil. 2007, 14:32
par Aureusms
Utilise substr() si $day est inférieur à 10:
if ($day < 10) $texte = substr ($texte,1);
mais il y a d'autre possibilité.

Posté : 08 juil. 2007, 14:44
par chrislabricole
oh oui, il y en a plein d'autres...

Je ne sais pas la quelle est la meilleure entre la tienne (Aureusms) et la mienne :lol: :D

Posté : 08 juil. 2007, 14:52
par Alfala Bucro
C'est bon ca fonctionne merci.

Posté : 08 juil. 2007, 15:07
par Invité
> (débogue si il y a des bogues)

pour les 10, 20 et 30, on se retrouve respectivement les 1, 2 et 3

( sauf si qque chose m'a échappé, et dans ce cas je présente mes excuses )

Posté : 08 juil. 2007, 15:37
par chrislabricole
à oui mince :( ben tu fais un if ! :D

Posté : 08 juil. 2007, 15:45
par Sékiltoyai
Pourquoi pas remplacer par ca plutôt ?
preg_match('/(\d{4})-0?(\d)-0?(\d) (\d{2}):(\d{2}):(\d{2})/', $texte, $matches);
list($year, $month, $day, $hour, $min, $sec);
$months = array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");

Posté : 08 juil. 2007, 16:54
par Truc
sinon formater depuis la source (SQL) avec date_format() et la bonne option (%e)