Soucis avec un DATE_FORMAT
kickoff
-
Alain42 -
Alain42 -
Bonjour,
je suis en train de développer un système de tache en ligne. Chacun rentre les tâches qu'il a effectué et moi je vérifie en sélectionnant la semaine pour voir toutes les tâches effectuées.
Malheureusement j'ai un soucis avec mes dates. En effet, je rentre ma date du début de la semaine (27/08/2007) et ma date de fin de la semaine (02/09/2007). Puis je la transforme en anglais car dans ma bdd mon champs est de type DATE et quand je veux sortir donc les tâches suppérieures à ma date de début de la semaine et inférieure à ma date de fin de la semaine il me sors aucun tâche.
Voici mon code :
$idclient = intval($_POST['client']);
$date_debutsemaine = $_POST['date_debut'];
$date_finsemaine = $_POST['date_fin'];
function dateswitch($Date)
{ $dates=explode(" ", " ".$Date);
$Date=$dates[1]; $Time=$dates[2];
if ($Time!=null) $Time=$date;
$regs=explode("-", "-".$Date);
return $regs['3']."-".$regs['2']."-".$regs['1'].$Time;
}
$date_debutfinale = dateswitch(date(''.$date_debutsemaine.''));
$date_finfinale = dateswitch(date(''.$date_finsemaine.''));
$client = mysql_query('SELECT
client.client_id,
client.client_nom,
membres.membre_id,
membres.membre_nom,
taches.tache_date,
taches.tache_hdebut,
taches.tache_hfin,
taches.tache_descriptif,
taches.client_id,
taches.membre_id,
taches.dossier_id,
taches.tache_localisation FROM client
LEFT JOIN taches ON client.client_id = taches.client_id
LEFT JOIN membres ON taches.membre_id = membres.membre_id
WHERE taches.client_id='.$idclient.' AND taches.tache_date > '.$date_debutfinale.' AND taches.tache_date < '.$date_finfinale.'
ORDER BY taches.tache_date ASC') or die(mysql_error());
Donc si j'enlève mes 2 critéres sur la date par contre il me montre bien toutes les tâches qui se trouvent dans ma bdd
Merci d'avance pour votre aide, ça fais 3h que je suis dessus
je suis en train de développer un système de tache en ligne. Chacun rentre les tâches qu'il a effectué et moi je vérifie en sélectionnant la semaine pour voir toutes les tâches effectuées.
Malheureusement j'ai un soucis avec mes dates. En effet, je rentre ma date du début de la semaine (27/08/2007) et ma date de fin de la semaine (02/09/2007). Puis je la transforme en anglais car dans ma bdd mon champs est de type DATE et quand je veux sortir donc les tâches suppérieures à ma date de début de la semaine et inférieure à ma date de fin de la semaine il me sors aucun tâche.
Voici mon code :
$idclient = intval($_POST['client']);
$date_debutsemaine = $_POST['date_debut'];
$date_finsemaine = $_POST['date_fin'];
function dateswitch($Date)
{ $dates=explode(" ", " ".$Date);
$Date=$dates[1]; $Time=$dates[2];
if ($Time!=null) $Time=$date;
$regs=explode("-", "-".$Date);
return $regs['3']."-".$regs['2']."-".$regs['1'].$Time;
}
$date_debutfinale = dateswitch(date(''.$date_debutsemaine.''));
$date_finfinale = dateswitch(date(''.$date_finsemaine.''));
$client = mysql_query('SELECT
client.client_id,
client.client_nom,
membres.membre_id,
membres.membre_nom,
taches.tache_date,
taches.tache_hdebut,
taches.tache_hfin,
taches.tache_descriptif,
taches.client_id,
taches.membre_id,
taches.dossier_id,
taches.tache_localisation FROM client
LEFT JOIN taches ON client.client_id = taches.client_id
LEFT JOIN membres ON taches.membre_id = membres.membre_id
WHERE taches.client_id='.$idclient.' AND taches.tache_date > '.$date_debutfinale.' AND taches.tache_date < '.$date_finfinale.'
ORDER BY taches.tache_date ASC') or die(mysql_error());
Donc si j'enlève mes 2 critéres sur la date par contre il me montre bien toutes les tâches qui se trouvent dans ma bdd
Merci d'avance pour votre aide, ça fais 3h que je suis dessus
4 réponses
Je te proose une fonction de transfo de date du fromat français au format mysql (jj/mm/aaaa => aaaa-mm-jj)
function switchdate($Date){
$array_date=explode("/",$Date);
$DateMysql=$array_date[2]."-".$array_date[1]."-".$array_date[0];
return $DateMysql;
}
</code>
car ta fonction me parait un peu bizarre.$dates=explode(" ", " ".$Date); ???? à quoi sert l'espace " " avant$Date ??
function switchdate($Date){
$array_date=explode("/",$Date);
$DateMysql=$array_date[2]."-".$array_date[1]."-".$array_date[0];
return $DateMysql;
}
</code>
car ta fonction me parait un peu bizarre.$dates=explode(" ", " ".$Date); ???? à quoi sert l'espace " " avant$Date ??
et si tu fais:
fais un echo de chaque pour voir si ça marche bien et renvoi bien sous la forme aaaa-mm-dd
car pour moi :$date_debutfinale = dateswitch(date(''.$date_debutsemaine.'')); que tu utilises n'est pas correct
function switchdate($Date){
$array_date=explode("/",$Date);
$DateMysql=$array_date[2]."-".$array_date[1]."-".$array_date[0];
return $DateMysql;
}
$date_debutsemaine=$_POST['nom_champ_date_debut'];
$date_finsemaine=$_POST['nom_champ_date_fin'];
$date_debutfinale = switchdate($date_debutsemaine);
$date_finfinale = dateswitch($date_finfinale);
fais un echo de chaque pour voir si ça marche bien et renvoi bien sous la forme aaaa-mm-dd
car pour moi :$date_debutfinale = dateswitch(date(''.$date_debutsemaine.'')); que tu utilises n'est pas correct