Outils pour utilisateurs

Outils du site


tips_informatiques:programmation:php:plugin_alaxos:librairie:datetool

Ceci est une ancienne révision du document !


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
tips_informatiques/programmation/php/plugin_alaxos/librairie/datetool.1282684755.txt.gz · Dernière modification: 2010/08/24 00:00 (modification externe)