J'ai un problème avec une manipulation de date venant de ma BD MySQL sur une page php.
Voilà: j'ai une colonne avec une date que je vais chercher pour l'afficher sur ma page - jusque là tout va bien, ça fonctionne-, mais je pose une condition: si la date, à laquelle je soustrais la date d'aujourd'hui, est négative, alors la date de ma BD (qui était une date de fin) devient une date de début, à laquelle j'ajoute 21 jours pour trouver une nouvelle date de fin... Puis je modifie le jeu d'enregistrement de ma base et crée en crée un nouveau avec les nouvelles données obtenues (dates...).
Tout fonctionne, sauf, la détermination des deux nouvelles dates: ce que je ne comprends pas, pcq notamment la nouvelle date de début n'est rien d'autre que l'ancienne date de fin, que je récupère bien, et qui refuse de se copier dans le nouveau jeu d'enregistrement.
Pour éclaircir le tout, voici le code:
$mysql_link = mysql_connect('localhost','id','pwd');
$var = 'SELECT cp_fin FROM cp WHERE cp_statut ="On"';
$result = mysql_db_query('DB',$var);
// Là je récupère la date de fin
while ($row = mysql_fetch_array($result))
{
list($year, $month, $day, $hour, $min, $sec) = split("-", $row[0]);
// On split sur les tirets pour séparer an, mois, et jour
$oldtimestamp = gmmktime($hour, $min, $sec, $month, $day, $year);
// On créé un time stamp avec cette date.
$nowtimestamp = gmmktime();
// On crée le timestamp correspondant à aujourd'hui
$differ = $oldtimestamp - $nowtimestamp;
// On fait la différence entre les deux timestamp
$nb_days = floor(($differ/86400));
$mod = $differ - ($nb_days * 86400);
// ici on calcule combien de secondes restent apres avoir determine les jours
$nb_hours = floor(($mod/3600));
// Ici on retrouve combien d'heures
$mod = $mod - ($nb_hours * 3600);
// ici on calcule combien de secondes restent apres avoir détermine les heures
$nb_mins = floor(($mod/60));
// Ici on retrouve combien de minutes
$nb_secs = $mod - ($nb_mins * 60);
$time = $nb_days;
$time .= $nb_hours;
$time .= $nb_mins;
$time .= $nb_secs;
}
if ($time < 0){
$date_debut = $row[cp_cycleLESC_fin];
$date_fin = 'DATE_ADD("$date_debut", INTERVAL 21 DAY)';
$maj = 'UPDATE cp SET cp_statut ="Off" WHERE cp_statut ="On"';
$vieux_cycle = mysql_db_query('CP', $maj);
$create = 'INSERT INTO cp (id_cp, cp_comm, cp_fin, cp_Qt, cp_statut) VALUES ("","$date_debut","$date_fin","0","On")';
$newcycle = mysql_db_query('CP', $create);
$requete2 = $var;
$new_result = mysql_db_query('CP', $requete2);
while ($row = mysql_fetch_array($new_result))
{
list($year, $month, $day, $hour, $min, $sec) = split("-", $row[0]);
// On split sur les tirets pour séparer an, mois, et jour
$oldtimestamp = gmmktime($hour, $min, $sec, $month, $day, $year);
// On créé un time stamp avec cette date.
$nowtimestamp = gmmktime();
// On crée le timestamp correspondant à aujourd'hui
$differ = $oldtimestamp - $nowtimestamp;
// On fait la différence entre les deux timestamp
$nb_days = floor(($differ/86400));
$mod = $differ - ($nb_days * 86400);
// ici on calcule combien de secondes restent apres avoir determine les jours
$nb_hours = floor(($mod/3600));
// Ici on retrouve combien d'heures
$mod = $mod - ($nb_hours * 3600);
// ici on calcule combien de secondes restent apres avoir détermine les heures
$nb_mins = floor(($mod/60));
// Ici on retrouve combien de minutes
$nb_secs = $mod - ($nb_mins * 60);
echo $nb_days.'j.'.$nb_hours.'h.'.$nb_mins.'mn.';
}
}
else{
echo $nb_days.'j.'.$nb_hours.'h.'.$nb_mins.'mn.';
}
mysql_close ();
Merci d'avance !