Je dois vérifier une date spécifique si elle est passée ou non et si elle est réussie, elle sera ensuite vérifiée par rapport à un tableau de date pour voir laquelle est la plus proche .PHP: Vérification d'une date par rapport à un tableau de dates pour obtenir la date la plus proche
J'ai commencé mais
Le code:
<?php
function getCurrDate ($c_id){
// Fetch the course date
$course_nxt_date = "2013-02-03";
// fetch current date
$today = date("Y-m-d");
// Check if course date is in the future
if($course_nxt_date > $today){
$course_date = $course_nxt_date;
return $course_date;
}
// Check if course date is exactly today
elseif($course_nxt_date == $today){
$course_date = $course_nxt_date;
return $course_date;
}
// Check if course date is passed
else{
// Since course date is passed, get an array of future dates from database
$all_course_dates_query = @mysql_query("select * from pub_calendar_dates where course_id = '$c_id' order by course_date asc");
//Loop through the array
$all_course_dates_arr = array();
while ($all_course_dates_row = @mysql_fetch_assoc($all_course_dates_query)){
// assign each variable in the $all_course_dates_row to a new array $all_course_dates_arr
$all_course_dates_arr[] = $all_course_dates_row['course_date'];
}
// This is where I became blank on what to do next and Im stucked...Need help from here
return $course_date;
}
}
?>
De plus amples détails:
si le course_nxt_date $ est adopté, il sera vérifié contre certaines dates futures existantes, pour la même cours, quelque part dans une table de base de données particulière. Tout en vérifiant $ course_nxt_date contre le tableau all_course_dates_arr de $ [], je devrai obtenir la date la plus proche du course_nxt_date de $
Example of dates that could be in the array - $all_course_dates_arr[]:
$all_course_dates_arr[0] = "2013-01-25";
$all_course_dates_arr[1] = "2013-04-08";
$all_course_dates_arr[2] = "2013-06-13";
$all_course_dates_arr[3] = "2013-08-03";
$all_course_dates_arr[4] = "2013-02-17";
Depuis
$course_nxt_date = "2013-02-03";
La fonction devrait afficher la date la plus proche, comme indiqué ci-dessous :
echo getCurrDate(18);
Output - 2013-02-17
Je serai heureux d'obtenir de l'aide avec cela ... Merci!
Si vous utilisez [epoch timestamps] (http://en.wikipedia.org/wiki/Epoch), il vous sera peut-être plus facile de comparer les valeurs. Vous pouvez utiliser quelque chose de similaire à [this] (http://stackoverflow.com/a/6147488/558021) pour obtenir la correspondance la plus proche. – Lix
Je pense qu'il serait plus facile d'utiliser 'DATEDIFF' dans votre requête pour récupérer uniquement la date la plus proche de la base de données. – hsan
L'utilisation de l'horodatage de la bibliothèque de dates vous permet de trouver la différence entre deux jours. Pour cela, vous devrez corriger une fonction personnalisée –