261 lines
7.8 KiB
PHP
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;
|
|
} |