Chargement d'une date farfelue avec la fonction STRTOTIME

ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012 - 24 mars 2009 à 15:03
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 24 mars 2009 à 21:56
Bonjour les z'amis,

je ressors mes rames pour un bon moment... pfffffffffffff

j'ai un petit soucis avec la commande STRTOTIME.
En fait, je désirais afficher dans les zones de mon formulaire un format date Français.
Après quelques recherches, j'ai pu adapter la fonction STRTOTIME qui me donne de bon résultat.
Cependant, quand mes zones dates sont alimentées via la db sql et  une date correcte, pas de prob. mais quand ma zone est = à une date 0000-00-00 ( parce qu'il n'y a pas encore eu d'encodage ) j'ai en retour une date farfelue du style 30-11-1999.
Ci-dessous mon bout de code :
<?php
 include('..\include\common\haut.inc.php');
 include('..\include\gestion_sg\param.inc.php');
  $email =$_REQUEST['email']; //Recuperation de la variable email du lien de la page
        $liendb = mysql_connect($host,$user,$pws);
       mysql_select_db ($database);
 $sql = "select * from ticket where email='$email' and Status IN ('AP','PL') order by Status";
 $resultat = mysql_query ($sql);
?>
  ----

 <table width=80% align=center border=2 >
 ----

 NUM_TICKET,
 DATE_DEMANDE,
 DATE_SOUHAITEE,
 DATE_PREVUE,
 OPERATEUR,
 STATUT,
 
<?php
while ($ticket = mysql_fetch_array ($resultat))
{
$numticket = $ticket['numticket'];
$timestamp = strtotime($ticket['datedebut']); //Adaptation de la date format EN de la DB en format FR
$datefr = date('d-m-Y', $timestamp); //Parametre affichage  en format FR
$timestamp1 = strtotime($ticket['datesouhaitee']); //Adaptation de la date format EN de la DB en format FR
$datefr1 = date('d-m-Y', $timestamp1); //Parametre affichage  en format FR
$timestamp2 = strtotime($ticket['dateprevue']); //Adaptation de la date format EN de la DB en format FR
$datefr2 = date('d-m-Y', $timestamp2); //Parametre affichage  en format FR
$operateur= $ticket['operateur'];
$Status = $ticket['Status'];

echo \"----
\";
echo \"$numticket, \";
echo \"$datefr, \";
echo \"$datefr1, \";
echo \"$datefr2, \";
echo \"$operateur, \";
echo \"$Status, \";
echo \"";
echo "<form action='ticket_edite_user.php'>";
echo "";
echo "";
echo "";
echo "</form>";
echo ", \";
echo \"\";
}
echo "
";
mysql_close($liendb);
echo "";
echo "</html>";
include ('..\include\common\bas.inc.php');
?>

Avez-vous une idée, une explication qui me permettrait d'afficher une valeur à blanc ou la date équivalente à 00-00-0000 si il n'y a pas de données pour cette zone dans la DB.
Toutes indication, aides sont les bienvenues.

Merci

3 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
24 mars 2009 à 21:05
Salut Ecolom,

Peut être tout simplement en faisant un trucbidule du genre :
if ($ticket['dateprevue'] == '0000-00-00') {
    $datefr2 = 'naissance de JC'; // la date équivalente à 00-00-0000
} else {
    $timestamp2 = strtotime($ticket['dateprevue']); //Adaptation de la date format EN de la DB en format FR
    $datefr2 = date('d-m-Y', $timestamp2); //Parametre affichage  en format FR
}

Cordialement,

Kohntark -
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
24 mars 2009 à 21:06
Salut,

Plutôt que d'utiliser strtotime(), regarde plutôt du côté de date_create() avec date_format() pour du procédural ou vers l'objet DateTime pour de l'objet. Tu trouvera des exemples de ce genre de choses dans la documentation de DateTime::format
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
24 mars 2009 à 21:56
heu ... j'ai sans doute dis une connerie, qui ne sera ni la première ni la dernière.
A vrai dire tout ça porte un peu à confusion.
Quelles sont les valeurs exactes contenues dans ta DB ?
Quel type de champ est ce ?
As tu l'accès complet sur la base ?

Cordialement,

Kohntark -
0
Rejoignez-nous