Cette classe contient un ensemble de méthodes statiques permettant de manipuler des dates.
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