Soucis avec un DATE_FORMAT

kickoff -  
 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

4 réponses

Alain42
 
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 ??
0
kickoff
 
merci pour cette fonction lol mais ça ne règle pas mon soucis
0
Alain42
 
et si tu fais:

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
0
Alain42
 
Excuses un copier/coller malheureux, il faut lire:

$date_debutsemaine=$_POST['nom_champ_date_debut'];
$date_finsemaine=$_POST['nom_champ_date_fin'];
$date_debutfinale = switchdate($date_debutsemaine);
$date_finfinale = switchdate($date_finsemaine);
0