Files
ms1inscription-v5/php/inc_dates.php
2026-05-13 09:43:32 -04:00

261 lines
7.8 KiB
PHP

<?php
//fonction qui afiche le mois
//param: date, langue de sortie, fuseau horaire de l'Est (yes/no)
//retourne: mois en texte
function fxMois($date, $langue) {
$month = date('F', strtotime($date));
if ($langue == "fr") {
$mois = array("January" => "Janvier", "February" => "Février", "March" => "Mars", "April" => "Avril", "May" => "Mai", "June" => "Juin", "July" => "Juillet", "August" => "Août", "September" => "Septembre", "October" => "Octobre", "November" => "Novembre", "December" => "Décembre");
return strtolower($mois[$month]);
}
else
return $month;
}
//fonction qui afiche la journée de laa semaine
//param: date, langue de sortie, fuseau horaire de l'Est (yes/no)
//retourne: journée en texte
function fxJournee($date, $langue) {
$journee = date('l', strtotime($date));
if ($langue == "fr") {
$jour = array("Monday" => "Lundi", "Tuesday" => "Mardi", "Wednesday" => "Mercredi", "Thursday" => "Jeudi", "Friday" => "Vendredi", "Saturday" => "Samedi", "Sunday" => "Dimanche");
return $jour[$journee];
}
else
return $journee;
}
//fonction pour affiche la date complète
//param: date, langue de sortie, switch pour afficher ou non l'annee
//retourne: la date formattée
function fxShowDatesl($date) {
$j = substr($date, 8, 2);
$m = substr($date, 5, 2);
$a = substr($date, 0, 4);
return $j . '-' . $m .'-'.$a;
}
function fxShowDate($date, $langue, $int_show_year = 0,$int_sup = 1) {
$j = substr($date, 8, 2);
$m = substr($date, 5, 2);
$a = substr($date, 0, 4);
if ($a < 1970 || $a > 2038)
$date = date('Y-m-d', mktime(0, 0, 0, $m, $j, 2000));
$mois = fxMois($date, $langue);
if ($langue == "fr") {
$jour = date('j', strtotime($date));
if ($jour == 1){
if ($int_sup==1)
$jour .= '<sup>er</sup>';
else
$jour .= 'er';
}
}
else {
$jour = date('j', strtotime($date));
$term = date('S', strtotime($date));
/* if ($int_sup==1)
$jour = $jour . "<sup>$term</sup>";
else
$jour = $jour . $term; */
}
if($int_show_year == 0){
if ($langue == "fr")
return $jour . ' ' . $mois . ' ' . $a;
else
return $mois . ' ' . $jour . ', ' . $a;
}
else{
if ($langue == "fr")
return $jour . ' ' . $mois;
else
return $mois . ' ' . $jour;
}
}
//fonction pour afficher l'intervalle de deux dates
//param: date debut, date fin, langue de sortie
//retourne: la chaîne de dates formattée
function fxShowDateInterval($date_debut, $date_fin, $langue) {
if ($date_debut == $date_fin)
return fxShowDate($date_debut, $langue);
else {
if(date('y', strtotime($date_debut)) == date('y', strtotime($date_fin))) { // same year
if (date('m', strtotime($date_debut)) == date('m', strtotime($date_fin))) { // same year + same month
if ($langue == 'en')
$str_date_debut = fxShowDate($date_debut, $langue, 1);
else {
$str_date_debut = date('j', strtotime($date_debut));
if ($str_date_debut == 1)
$str_date_debut .= '<sup>er</sup>';
}
}
else{
if ($langue == 'en')
$str_date_debut = fxShowDate($date_debut, $langue, 1);
else {
$str_date_debut = fxShowDate($date_debut, $langue, 1);
}
}
}
else{ // year diff
if(date('m', strtotime($date_debut)) == date('m', strtotime($date_fin))) {
if($langue == 'en')
$str_date_debut = fxShowDate($date_debut, $langue);
else
$str_date_debut = fxShowDate($date_debut, $langue);
}
else
$str_date_debut = fxShowDate($date_debut, $langue, 1); //'diff annee diff month'
}
$str_date_fin = fxShowDate($date_fin, $langue);
if ($langue == 'fr')
return 'du ' . $str_date_debut . ' au ' . $str_date_fin;
else
return 'from ' . $str_date_debut . ' to ' . $str_date_fin;
}
}
//fonction pour récupérer la date actuelle
//retourne la date avec le bon fuseau horaire
function fxGetDate() {
return date('Y-m-d');
}
//fonction pour récupérer l'heure actuelle
//retourne l'heure avec le bon fuseau horaire
function fxGetTime() {
return date('H:i:s');
}
//fonction pour afficher l'heure
//param: heure à convertir, time zone (oui/non), langue d'affichage
//retourne l'heure avec le bon fuseau horaire
function fxShowTime($strHeure, $intTimeZone = 0, $strLangue = 'fr') {
$strTime = date('H:i:s', strtotime($strHeure));
if ($intTimeZone == 1) {
if ($strLangue == 'en')
$strTime .= ' ' . date('T', strtotime($strHeure));
else {
$strTimeZone = date('T', strtotime($strHeure));
$tabTimeZones = array(
"EDT" => "HAE",
"EST" => "HNE",
"MDT" => "HAR",
"MST" => "HNR",
"CDT" => "HAC",
"CST" => "HNC",
"ADT" => "HAA",
"AST" => "HNA",
"NDT" => "HAT",
"NST" => "HNT",
"PDT" => "HAP",
"PST" => "HNP",
"YDT" => "HAY",
"YST" => "HNY"
);
$strTime .= ' ' . $tabTimeZones[$strTimeZone];
}
}
return $strTime;
}
//fonction pour afficher la date et l'heure actuelle
//retourne l'heure avec le bon fuseau horaire
function fxGetDateTime() {
return fxGetDate() . ' ' . fxGetTime();
}
// fonction pour trouver l'âge de qqc ou qqn
// param: date, langue de sortie
// retourne: l'âge avec ans/years old
function fxGetAge($strDateDebut, $strDateFin, $strLangue = 'fr') {
if ($strDateFin == '')
$strDateFin = fxGetDate();
// décomposer la date de début
$intJourDebut = substr($strDateDebut, 8, 2);
$intMoisDebut = substr($strDateDebut, 5, 2);
$intAnneeDebut = substr($strDateDebut, 0, 4);
// décomposer la date de fin
$intJourFin = substr($strDateFin, 8, 2);
$intMoisFin = substr($strDateFin, 5, 2);
$intAnneeFin = substr($strDateFin, 0, 4);
$intAge = $intAnneeFin - $intAnneeDebut;
// si le mois de naissance est plus grand que le mois du jour, soustraire 1 an
if ($intMoisDebut > $intMoisFin)
$intAge -= 1;
elseif ($intMoisDebut == $intMoisFin) {
// si le mois de naissance est égal au mois du jour, mais que le jour est plus grand, soustraire 1 an
if ($intJourDebut > $intJourFin)
$intAge -= 1;
}
if ($intAge < 1)
$intAge = 0;
// retourner l'âge avec le ans/years old
if ($strLangue != '') {
if ($strLangue == 'fr') {
if ($intAge > 1)
$strAge = $intAge . ' ans';
else
$strAge = $intAge . ' an';
}
else {
if ($intAge > 1)
$strAge = $intAge . ' years old';
else
$strAge = $intAge . ' year old';
}
}
else
$strAge = $intAge;
return $strAge;
}
function fxSecondsToTime($intInputSeconds, $blnHideHours = false) {
$strReturn = '';
$intOutputHours = floor(intval($intInputSeconds) / 3600);
$intOutputMinutes = floor((intval($intInputSeconds) / 60) % 60);
$intOutputSeconds = intval($intInputSeconds) % 60;
if ($blnHideHours) {
if (intval($intOutputHours) > 0) {
$strReturn = fxAddLeadingZero($intOutputHours) . ':';
}
} else {
$strReturn = fxAddLeadingZero($intOutputHours) . ':';
}
$strReturn .= fxAddLeadingZero($intOutputMinutes) . ':' . fxAddLeadingZero($intOutputSeconds);
return $strReturn;
}
function fxAddLeadingZero($intNumber) {
if (intval($intNumber) < 10) {
$strReturn = '0' . $intNumber;
} else {
$strReturn = $intNumber;
}
return $strReturn;
}