====== DateTool class ======
Cette classe contient un ensemble de méthodes statiques permettant de manipuler des dates.
===== Méthodes principales =====
**set_current_locale($locale)**
>Configure la locale PHP de l'application et la langue de l'application CakePHP
>Une fois configurée la locale indiquée est utilisée par défaut pas plusieurs fonctions de la classe //DateTool//.
>Pour le français et l'anglais, essaie de trouver la bonne locale à utiliser, en fonction des locales configurées sur le serveur.
DateTool :: set_current_locale('fr');
/*
* -> may have set locale to 'fr_CH.UTF-8', 'fr_CH', 'fr_FR.UTF-8' or 'fr_FR'
* depending on the locale installed on the server
*/
**get_current_locale()**
>Retourne la locale actuelle
DateTool :: get_current_locale(); // 'fr_CH.UTF-8'
**sql_to_date($sql_date, $locale = null, $with_time = true)**
>Formatte une date ou un datetime //SQL// dans la locale de l'application.
>A utiliser notamment pour afficher les dates dans les vues.
>//$locale//:
>>par défaut, la locale courante de PHP, ou la locale settée précédement par //DateTool::set_current_locale($locale)//
DateTool :: set_current_locale('fr');
DateTool :: sql_to_date('2010-08-01'); // '01.08.2010'
DateTool :: sql_to_date('2010-08-01 13:34:10'); // '01.08.2010 13:34:10'
**date_to_sql($date, $locale = null, $with_time = true)**
>Permet d'obtenir une date //SQL// à partir d'une date formattée dans une autre locale.
>A utiliser notamment avant de sauver des champs dates dont les valeurs proviennent des vues.
>//$locale//:
>>par défaut, la locale courante de PHP, ou la locale settée précédement par //DateTool::set_current_locale($locale)//
DateTool :: set_current_locale('fr');
DateTool :: date_to_sql('01.08.2010'); // '2010-08-01'
DateTool :: date_to_sql('01.08.2010 13:34:10'); // '2010-08-01 13:34:10'
**format_date_interval($dateStr, $separator = ' - ', $locale = null)**
>Formatte un intervalle de dates au format //SQL// dans la locale donnée
>//$locale//:
>>par défaut, la locale courante de PHP, ou la locale settée précédement par //DateTool::set_current_locale($locale)//
DateTool :: set_current_locale('fr');
DateTool :: format_date_interval('2010-08-01 - 2010-08-05'); // '01.08.2010 - 05.08.2010'
DateTool :: format_date_interval('2010-08-01 13:00:17 - 2010-08-05 08:20:00') // '01.08.2010 13:00:17 - 05.08.2010 08:20:00'
**sql_to_datetime($sql_date, $locale = null)**
>Formatte un datetime //SQL// (//2010-08-01 13:34:10//) dans la locale de l'application (ex: //01.08.2010 13:34:10//).
>A noter que la fonction //sql_to_date// détecte automatiquement la présence d'une heure et appelle cette fonction le cas échéant.
DateTool :: set_current_locale('fr');
DateTool :: sql_to_datetime('2010-08-01 13:34:10'); // '01.08.2010 13:34:10'
DateTool :: sql_to_datetime('2010-08-01'); // '01.08.2010 00:00:00'
**datetime_to_sql($date, $locale = null, $force_datetime = false)**
>Permet d'obtenir un datetime //SQL// à partir d'un datetime formatté dans une autre locale.
DateTool :: set_current_locale('fr');
DateTool :: datetime_to_sql('01.08.2010 13:34:10'); // '2010-08-01 13:34:10'
DateTool :: datetime_to_sql('01.08.2010 00:00:00'); // '2010-08-01 00:00:00'
**get_current_datetime($locale = null)**
>Permet d'obtenir la date et l'heure courante dans la locale souhaitée
>//$locale//:
>>par défaut, la locale courante de PHP, ou la locale settée précédement par //DateTool::set_current_locale($locale)//
DateTool :: set_current_locale('fr');
DateTool :: get_current_datetime(); // '01.08.2010 13:34:10'
**get_complete_time($timeStr)**
>Retourne une heure complétée avec les minutes et les secondes
DateTool :: get_complete_time('3'); // '03:00:00'
DateTool :: get_complete_time('16:35'); // '16:35:00'
DateTool :: get_complete_time('16:35:34'); // '16:35:34'
**get_complete_datetime($timeStr)**
>Identique à //get_complete_time($timeStr)//, mais pour gérer les datetimes
**get_complete_year($year)**
>Retourne une date complétée
DateTool :: get_complete_year(85); // 1985
DateTool :: get_complete_year(16); // 2016
**get_time_from_hour($hour)**
>Retourne une durée à partir d'un nombre d'heure
DateTool :: get_time_from_hour(8); // '08:00'
**get_hour_as_float($time_string)**
>Retourne un nombre représentant le nombre d'heure du string passé
DateTool :: get_hour_as_float('08:15'); // 8.25
**get_time_array($start_hour, $end_hour, $step_hour, $minimum_hour = null, $maximum_hour = null, $locale = null)**
>Retourne un tableau contenant des datetimes pouvant être utilisés par exemple dans un calendrier
$hours = DateTool :: get_time_array(8, 10, 0.25);
/*
Array
(
[0] => 08:00
[1] => 08:15
[2] => 08:30
[3] => 08:45
[4] => 09:00
[5] => 09:15
[6] => 09:30
[7] => 09:45
)
*/
**compare_dates($date1, $date2, $locale = null)**
>Retourne un caractère indiquant si la première date est plus petite, plus grande ou identique à la seconde
>Les dates doivent être passées dans la locale indiquées ou la locale courante.
DateTool :: set_current_locale('fr');
DateTool::compare_dates('01.08.2010', '01.08.2010'); // =
DateTool::compare_dates('01.08.2010', '02.08.2010'); // <
DateTool::compare_dates('02.08.2010', '01.08.2010'); // >
DateTool::compare_dates('01.08.2010 14:00:01', '01.08.2010 14:00:00'); // >
**datetime_is_in_interval($start_datetime, $end_datetime, $datetime_to_check = null, $locale = 'sql')**
>Retourne un boolean indiquant si un datetime est compris entre deux datetimes donnés
DateTool :: datetime_is_in_interval('2010-08-01 13:30:00', '2010-08-01 13:50:00', '2010-08-01 13:45:00'); // true
DateTool :: datetime_is_in_interval('2010-08-01 13:30:00', '2010-08-01 13:50:00', '2010-08-01 13:55:00'); // false
DateTool :: datetime_is_in_interval('2010-08-01', '2010-08-03', '2010-08-02'); // true
DateTool :: datetime_is_in_interval('2010-08-01', '2010-08-02', '2010-08-03'); // false