MediCoder Aide

Blogues » MediCoder » Calculs sur les dates en langage naturel
Par rhum17460 points 

Calculs sur les dates en langage naturel

Les calculs sur les dates peuvent être de vrais casse-têtes (premier date du mois prochain, dernier jour du mois courant, ...). L'utilisation du langage naturel de strtotime(), la fonction sollicitée par nos mbDate()-like, permet de faciliter tout ça !

Exemple d'un code avant (long, difficile à comprendre et buggé pour certaines date spécifiques) :

$date = CValue::getOrSession("date", mbDate());
$first_day_curr_month = mbTransformTime("+ 0 month", $date, "%Y-%m-01");
$last_day_curr_month  = mbTransformTime("+ 1 month", $month_min, "%Y-%m-01");
$last_day_curr_month  = mbDate("- 1 day", $month_max);
$last_day_last_month  = mbDate("-1 month", $date);
$first_day_next_month = mbDate("+1 month", $date);

Après utilisation du langage naturel :

$date = CValue::getOrSession("date", mbDate());
$first_day_curr_month = mbDate("first day of +0 month", $date);
$last_day_curr_month  = mbDate("last day  of +0 month", $date);
$last_day_last_month  = mbDate("last day  of -1 month", $date);
$first_day_next_month = mbDate("first day of +1 month", $date);

Vous pouvez utiliser beaucoup de notions en langage naturel :

  • des unitées de temps (year, month, week, day, hour, minute, second, am, pm, fortnight)
  • des mots courants (ago, now, last, this, next, tomorrow, yesterday)
  • des opérateurs (- et +)
  • des nombres (1, 2, 3, …)
  • des times zones (gmt, pdt, akst)
  • des noms de mois et leurs abréviations
  • des noms de jours de la semaine et leurs abréviations

Référence : la fonction strtotime sur le site php.net (external link)

Sponsors privilégiés

Mediboard project