Php tri de dates avec la fonction explode
ouafasuin
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
ouafasuin Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
ouafasuin Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veux faire un tri de dates de création de fichiers en php en utilisant la date sous forme de "d/m/Y H:i:s".
J'ai essayé avec la fonction explode() mais je n'ai pas le résultat que je veux. Est-ce que vous pouvez
m'indiquer l'erreur
Voila mon code et merci d'anvance!!
<?php
function cmpdate($var, $var2)
{
$tab_date1= explode(" ",$var);
$part1= $tab_date1[1];
$part2= $tab_date1[2];
$dar1= explode("/",$part1);
$date1 = $dar1[2] . $dar1[1] . $dar1[0];
$tab_date2= explode(" ",$var2);
$part3= $tab_date2[1];
$part4= $tab_date2[2];
$dar2= explode("/",$part1);
$date2 = $dar2[2] . $dar2[1] . $dar2[0];
if ($date1>$date2) return $var;
else if ($date2>$date1) return $var2;
else
{
$far1= explode(":", $part2);
$heure1= $far1[0] . $far1[1] . $far1[2];
$far2= explode(":", $part4);
$heure2= $far2[0] . $far2[1] . $far2[2];
if($heure1>$heure2) return $var;
else return $var2;
}
}
$map1= "26/10/2008 12:50:40";
$map2= "27/09/2008 11:59:12";
$res= cmpdate($map1, $map2);
echo "la date $res est la date superieure";
?>
Je veux faire un tri de dates de création de fichiers en php en utilisant la date sous forme de "d/m/Y H:i:s".
J'ai essayé avec la fonction explode() mais je n'ai pas le résultat que je veux. Est-ce que vous pouvez
m'indiquer l'erreur
Voila mon code et merci d'anvance!!
<?php
function cmpdate($var, $var2)
{
$tab_date1= explode(" ",$var);
$part1= $tab_date1[1];
$part2= $tab_date1[2];
$dar1= explode("/",$part1);
$date1 = $dar1[2] . $dar1[1] . $dar1[0];
$tab_date2= explode(" ",$var2);
$part3= $tab_date2[1];
$part4= $tab_date2[2];
$dar2= explode("/",$part1);
$date2 = $dar2[2] . $dar2[1] . $dar2[0];
if ($date1>$date2) return $var;
else if ($date2>$date1) return $var2;
else
{
$far1= explode(":", $part2);
$heure1= $far1[0] . $far1[1] . $far1[2];
$far2= explode(":", $part4);
$heure2= $far2[0] . $far2[1] . $far2[2];
if($heure1>$heure2) return $var;
else return $var2;
}
}
$map1= "26/10/2008 12:50:40";
$map2= "27/09/2008 11:59:12";
$res= cmpdate($map1, $map2);
echo "la date $res est la date superieure";
?>
A voir également:
- Php tri de dates avec la fonction explode
- Fonction si et - Guide
- Comment faire un tri personnalisé sur excel - Guide
- Nombre de jours entre deux dates excel - Guide
- Logiciel tri photo - Guide
- Fonction moyenne excel - Guide
1 réponse
Ton erreur provient des indices utilisés pour les tableaux dans la fonction cmpdate. Voir ci-dessous script modifié :
Une recommandation, utiliser les fonctions proposées par php pour décoder une date. Le code que tu as fait marche mais est vulnérable à un mauvais formattage des dates $map1 et $map2.
<?php function cmpdate( $var, $var2 ) { $tab_date1= explode(" ",$var); $part1= $tab_date1[0]; // 1 --> 0 $part2= $tab_date1[1]; // 2 --> 1 $dar1= explode( "/", $part1 ); $date1 = $dar1[2] . $dar1[1] . $dar1[0]; $tab_date2= explode(" ", $var2); $part3= $tab_date2[0]; // 1 --> 0 $part4= $tab_date2[1]; // 2 --> 1 $dar2= explode("/",$part1); $date2 = $dar2[2] . $dar2[1] . $dar2[0]; if ($date1>$date2) return $var; else if ($date2>$date1) return $var2; else { $far1= explode(":", $part2); $heure1= $far1[0] . $far1[1] . $far1[2]; $far2= explode(":", $part4); $heure2= $far2[0] . $far2[1] . $far2[2]; if($heure1>$heure2) return $var; else return $var2; } } $map1= "26/10/2007 12:50:40"; $map2= "27/09/2008 11:59:12"; $res = cmpdate( $map1, $map2 ); echo "la date $res est la date superieure"; ?>
Une recommandation, utiliser les fonctions proposées par php pour décoder une date. Le code que tu as fait marche mais est vulnérable à un mauvais formattage des dates $map1 et $map2.
ouafasuin
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
merci bcp pour ton aide, mais concernant les fonctions proposées par php pour décoder une date est-ce que tu peux me les indiquer stp, j'ai cherché mais j'ai rien trouvé.