<?php
|
/*---------------------------------------------------------------*/
|
/*
|
Titre : Retourne d'une date littérale la date exacte
|
|
URL : https://phpsources.net/code_s.php?id=941
|
Date édition : 15 Fév 2019
|
Date mise à jour : 30 Aout 2019
|
Rapport de la maj:
|
- fonctionnement du code vérifié
|
- correction du code
|
*/
|
/*---------------------------------------------------------------*/
|
|
function what_day_is($day){
|
// valeurs possibles pour $day : celles du tableau $tab_day.
|
// valeurs possibles pour le 2e paramètre : celles du tableau $tab_adj
|
// a utiliser avec les jours de la semaine uniquement bien sur.
|
|
$tab = getdate(time());
|
$tab_month = array("janvier", "fevrier", "mars", "avril", "mai", "juin",
|
"juillet", "aout", "septembre", "octobre", "novembre", "decembre");
|
|
$numargs = func_num_args();
|
if ($numargs < 1)
|
return ("Pas assez d'arguments");
|
if ($numargs > 2)
|
return ("Trop d'arguments");
|
$tab_day = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi"
|
, "samedi", "avant-hier", "hier", "aujourd'hui", "demain", "apres-demain");
|
if (!(in_array($day, $tab_day)))
|
return 0;
|
$tab_fday = array_flip($tab_day);
|
$tab_adj = array("dernier", "prochain", "en 8", "en 15");
|
$tab_fadj = array_flip($tab_adj);
|
if ($numargs == 1)
|
{
|
if ($tab_fday[$day] < 7)
|
return 0;
|
$res = getdate($tab[0] + 86400 * ($tab_fday[$day] - 9));
|
$ind = $res["mon"] - 1;
|
return($res["mday"]." ".$tab_month[$ind]);
|
}
|
if ($numargs == 2)
|
{
|
if ($tab_fday[$day] > 7)
|
return 0;
|
$adj = func_get_arg(1);
|
if (!(in_array($adj, $tab_adj)))
|
return 0;
|
if ($tab_fday[$day] == $tab["wday"])
|
{
|
if ($tab_fadj[$adj] == 0)
|
$res = getdate($tab[0] - 86400 * 7);
|
else
|
$res = getdate($tab[0] + 86400 * 7 * $tab_fadj[$adj]);
|
}
|
else
|
$res = getdate($tab[0] + 86400 * ($tab_fday[$day] - $tab["wday"] + 7 * (
|
$tab_fadj[$adj] - 1)));
|
$ind = $res["mon"] - 1;
|
return($res["mday"]." ".$tab_month[$ind]);
|
}
|
return 0;
|
}
|
?>
|
|
|