Debug deprecated PHP8 - date functions

This commit is contained in:
Adrien RENARD 2025-03-10 15:33:13 +01:00
parent cc68c5658c
commit 32b21fb14e
3 changed files with 178 additions and 654 deletions

View File

@ -124,682 +124,206 @@ function strtoupperFirstLetter($str) {
}
// DATE
{
$GLOBALS['PRINT_MOIS_COURT'] = array(
1 => 'janv.',
2 => 'fév.',
3 => 'mars',
4 => 'avril',
5 => 'mai',
6 => 'juin',
7 => 'juil.',
8 => 'août',
9 => 'sept.',
10 => 'oct.',
11 => 'nov.',
12 => 'déc.'
);
$GLOBALS['PRINT_MOIS'] = array(
1 => 'janvier',
2 => 'février',
3 => 'mars',
4 => 'avril',
5 => 'mai',
6 => 'juin',
7 => 'juillet',
8 => 'août',
9 => 'septembre',
10 => 'octobre',
11 => 'novembre',
12 => 'décembre'
);
function getTime($date,$moment='start',$format=DATE_FORMAT) { // Retourne un timestamp à partir d'une date jj/mm/aaaa
$infos = strptime($date,$format);
if (is_array($infos)) {
if ($moment=='start') {
return mktime(
'0',
'0',
'0',
($infos['tm_mon']+1),
$infos['tm_mday'],
(1900+$infos['tm_year'])
);
}
elseif ($moment=='end') {
return mktime(
'23',
'59',
'59',
($infos['tm_mon']+1),
$infos['tm_mday'],
(1900+$infos['tm_year'])
);
}
return mktime(
$infos['tm_hour'],
$infos['tm_min'],
$infos['tm_sec'],
($infos['tm_mon']+1),
$infos['tm_mday'],
(1900+$infos['tm_year'])
);
}
return NULL;
$GLOBALS['PRINT_JOUR_INI'] = array(
0 => 'D.',
1 => 'L.',
2 => 'Ma.',
3 => 'Me.',
4 => 'J.',
5 => 'V.',
6 => 'S.'
);
$GLOBALS['PRINT_JOUR_COURT'] = array(
0 => 'dim.',
1 => 'lun.',
2 => 'mar.',
3 => 'mer.',
4 => 'jeu.',
5 => 'ven.',
6 => 'sam.'
);
$GLOBALS['PRINT_JOUR'] = array(
0 => 'dimanche',
1 => 'lundi',
2 => 'mardi',
3 => 'mercredi',
4 => 'jeudi',
5 => 'vendredi',
6 => 'samedi'
);
$GLOBALS['DATE_FORMATS'] = array(
'date' => "d/m/Y",
'datetime' => "d/m/Y - H:i",
'mysql_date' => "Y-m-d",
'mysql_datetime' => "Y-m-d H:i:s",
'strdate' => "Y-m-d",
'strdatetime' => "Y-m-d_H.i.s",
'time' => "H:i",
'print_time' => "H:i",
'mois' => "m-d"
);
}
function getDateTxt($timestamp,$format=DATE_FORMAT) {
if ($timestamp==0) {
return '';
}
return strftime($format,(int)$timestamp);
function dateFormatHasDate($format) {
return $format=='date'
|| $format=='datetime'
|| $format=='mysql_date'
|| $format=='mysql_datetime'
|| $format=='strdate'
|| $format=='strdatetime'
|| $format=='timestamp';
}
function dateFormatHasTime($format) {
return $format=='datetime' || $format=='mysql_datetime' || $format=='strdatetime' || $format=='timestamp';
}
$GLOBALS['PRINT_MOIS_COURT'] = array(
1 => 'janv.',
2 => 'fév.',
3 => 'mars',
4 => 'avril',
5 => 'mai',
6 => 'juin',
7 => 'juil.',
8 => 'août',
9 => 'sept.',
10 => 'oct.',
11 => 'nov.',
12 => 'déc.'
);
$GLOBALS['PRINT_MOIS'] = array(
1 => 'janvier',
2 => 'février',
3 => 'mars',
4 => 'avril',
5 => 'mai',
6 => 'juin',
7 => 'juillet',
8 => 'août',
9 => 'septembre',
10 => 'octobre',
11 => 'novembre',
12 => 'décembre'
);
function parseDate($dateTxt='', $format="mysql_datetime", $moment=false, $dateTimeZoneTxt = "Europe/Paris") {
$dateObj = false;
$dateTimeZone = new DateTimeZone( $dateTimeZoneTxt );
if($dateTxt=="now") $dateObj = new DateTime('now', $dateTimeZone);
else if($format=="timestamp" && (int)$dateTxt>0) $dateObj = new DateTime('@'.$dateTxt, $dateTimeZone);
else if($dateTxt!='' && intval($dateTxt)!=0) {
if(array_key_exists($format, $GLOBALS['DATE_FORMATS'])) $dateObj = DateTime::createFromFormat($GLOBALS['DATE_FORMATS'][$format], $dateTxt, $dateTimeZone);
}
if(!isValidDateObj($dateObj)) return false;
if($moment=="start" || !dateFormatHasTime($format)) $dateObj->setTime(0, 0, 0);
else if($moment=="end") $dateObj->setTime(23, 59, 59);
return $dateObj;
}
$GLOBALS['PRINT_JOUR_INI'] = array(
0 => 'D.',
1 => 'L.',
2 => 'Ma.',
3 => 'Me.',
4 => 'J.',
5 => 'V.',
6 => 'S.'
);
function isValidDateObj($dateObj) { return $dateObj!==false && $dateObj!==NULL && $dateObj instanceof DateTime; }
$GLOBALS['PRINT_JOUR_COURT'] = array(
0 => 'dim.',
1 => 'lun.',
2 => 'mar.',
3 => 'mer.',
4 => 'jeu.',
5 => 'ven.',
6 => 'sam.'
);
$GLOBALS['PRINT_JOUR'] = array(
0 => 'dimanche',
1 => 'lundi',
2 => 'mardi',
3 => 'mercredi',
4 => 'jeudi',
5=> 'vendredi',
6 => 'samedi'
);
function isValidDate($dateTxt, $format = 'mysql_datetime', $dateTimeZoneTxt = "Europe/Paris") {
$dateObj = parseDate($dateTxt, $format, $dateTimeZoneTxt);
return isValidDateObj($dateObj);
}
function checkDateFormat($date, $format = 'mysql_datetime', $default = NULL) {
if($default == "now") $default = formatDate('', $format);
if($default == "now") $default = formatDate('now', $format);
return isValidDate($date, $format) ? $date : $default;
}
function isValidDate($date, $format = 'mysql_datetime') {
if(!$date || is_null($date)) return false;
$f = "Y-m-d";
function formatDate($dateTxt='', $originalFormat="mysql_datetime", $destinationFormat="datetime", $moment=false, $dateTimeZoneTxt = "Europe/Paris") {
$dateObj = parseDate($dateTxt, $originalFormat, $moment, $dateTimeZoneTxt);
return formatDateObj($dateObj, $destinationFormat);
}
function formatDateObj($dateObj, $format="datetime", $moment=false) {
if(!isValidDateObj($dateObj)) return "";
if($moment=="start") $dateobj->setTime(0, 0, 0);
else if($moment=="end") $dateobj->setTime(23, 59, 59);
if(array_key_exists($format, $GLOBALS['DATE_FORMATS'])) return $dateObj->format( $GLOBALS['DATE_FORMATS'][$format] );
$j = $GLOBALS['PRINT_JOUR'][ intval($dateObj->format("w")) ];
$d = intval( $dateObj->format("j") );
$m = $GLOBALS['PRINT_MOIS_COURT'][ intval($dateObj->format("m")) ];
$y = intval( $dateObj->format("Y") );
$t = $dateObj->format("H")."h".((int)$dateObj->format("i")>0 ? $dateObj->format("i") : "");
switch($format) {
case 'date': $f = "d/m/Y"; break;
case 'datetime': $f = "d/m/Y - H:i"; break;
case 'mysql_date': $f = "Y-m-d"; break;
case 'mysql_datetime': $f = "Y-m-d H:i:s"; break;
case 'strdatetime': $f = "Y-m-d_H.i.s"; break;
default; $f = "Y-m-d";
}
$d = DateTime::createFromFormat($f, $date);
if($d && $d->format($f) == $date) return true;
return false;
}
function getRequestDate($name, $format="mysql_date") {
if(isset($_REQUEST[$name]) && $_REQUEST[$name]!="") return checkDateFormat($_REQUEST[$name], $format);
return NULL;
}
function buildDate($day = 0, $month = 0, $year = 0, $forceBuild = false, $default = NULL) {
$date = $default;
if((int)$year>0) {
$date = $year;
if((int)$month>0 && (int)$month<13) {
$date .= "-".sprintf("%02d", $month);
$nbJ = cal_days_in_month(CAL_GREGORIAN, $month, $year);
if((int)$day>0 && (int)$day<($nbJ+1)) {
$date .= "-".sprintf("%02d", $day);
}
else if($forceBuild) $date .= "-1";
}
else if($forceBuild) $date .= "-1-1";
}
return $date;
}
function buildDatePrint ($day = 0, $month = 0, $year = 0, $default = ".") {
$date = $default;
if((int)$year>0) {
$date = $year;
if((int)$month>0 && (int)$month<13) {
$date = $GLOBALS['PRINT_MOIS'][$month]." ".$date;
$nbJ = cal_days_in_month(CAL_GREGORIAN, $month, $year);
if((int)$day>0 && (int)$day<($nbJ+1)) {
$d = $year."-".sprintf("%02d", $month)."-".sprintf("%02d", $day);
$date = formatDate($d, 'mysql_date', 'print_date_with_day');
}
}
}
return $date;
}
function buildDatePrintShort ($day = 0, $month = 0, $year = 0, $default = ".") {
$date = $default;
if((int)$year>0) {
$date = $year;
if((int)$month>0 && (int)$month<13) {
$date = $GLOBALS['PRINT_MOIS'][$month]." ".$date;
$nbJ = cal_days_in_month(CAL_GREGORIAN, $month, $year);
if((int)$day>0 && (int)$day<($nbJ+1)) {
$d = $year."-".sprintf("%02d", $month)."-".sprintf("%02d", $day);
$date = formatDate($d, 'mysql_date', 'date');
}
}
}
return $date;
}
function checkExplodeDate($day = 0, $month = 0, $year = 0, $default = NULL) {
$r = array(
"day" => $default,
"month" => $default,
"year" => $default,
"date" => $default
);
if((int)$year>0 && $year<2101) {
$r["year"] = $year;
if((int)$month>0 && (int)$month<13) {
$r["month"] = $month;
$nbJ = cal_days_in_month(CAL_GREGORIAN, $month, $year);
if((int)$day>0 && (int)$day<($nbJ+1)) $r["day"] = $day;
}
case 'print_date': return "$d $m $y"; break; // "j mois annee"
case 'print_date_with_day': return "$j $d $m $y"; break; // "jour j mois annee"
case 'print_datetime': return "$d $m $y à $t"; break; // "j mois annee à heure h min"
case 'timestamp': return $dateObj->getTimestamp(); break; // timestamp
}
$r['date'] = buildDate($r["day"], $r["month"], $r["year"], true);
return $r;
return "";
}
function formatDate($original='', $originalFormat="mysql_datetime", $destinationFormat="datetime", $moment=false) {
$infos = false;
if($original!='' && intVal($original)!=0) {
switch($originalFormat) {
case 'date':
$originalFormat = "%d/%m/%Y";
$infos = strptime($original,$originalFormat);
break;
case 'datetime':
$originalFormat = "%d/%m/%Y - %H:%M";
$infos = strptime($original,$originalFormat);
break;
case 'mysql_date':
$originalFormat = "%Y-%m-%d";
$infos = strptime($original,$originalFormat);
break;
case 'mysql_datetime':
$originalFormat = "%Y-%m-%d %H:%M:%S";
$infos = strptime($original,$originalFormat);
break;
case 'strdatetime':
$originalFormat = "%Y-%m-%d_%H.%M.%S";
$infos['tm_mday_week'] = sprintf("%02d", $infos['tm_mday']);
break;
case 'timestamp':
$infos = array(
'tm_hour' => date('G',$original),
'tm_min' => intval( date('i',$original) ),
'tm_sec' => intval( date('s',$original) ),
'tm_mday' => date('j',$original),
'tm_wday' => date('N',$original),
'tm_mon' => date('n',$original)-1,
'tm_year' => date('Y',$original)-1900
);
if($infos["tm_wday"]==7) $infos["tm_wday"] = 0;
//echo($original.' : '.$infos['tm_year'].' ');
break;
default;
$infos = strptime(strftime("%c"),"%c");
}
if($originalFormat=="date" || $originalFormat=="mysql_date" || ($moment=="start" || $moment=="end")) {
if($moment=="start") {
$infos['tm_hour'] = 0;
$infos['tm_min'] = 0;
$infos['tm_sec'] = 0;
}
else {
$infos['tm_hour'] = 23;
$infos['tm_min'] = 59;
$infos['tm_sec'] = 59;
}
}
}
else {
$infos = strptime(strftime("%c"),"%c");
}
$infos['tm_hour'] = sprintf("%02d", $infos['tm_hour']);
$infos['tm_min'] = sprintf("%02d", $infos['tm_min']);
$infos['tm_sec'] = sprintf("%02d", $infos['tm_sec']);
$infos['tm_mday'] = sprintf("%02d", $infos['tm_mday']);
$infos['tm_mon'] = sprintf("%02d", ($infos['tm_mon']+1));
$infos['tm_year'] = (1900+$infos['tm_year']);
//echo($original.' : '.$infos['tm_year'].' ');
switch($destinationFormat) {
case 'date': // "%d/%m/%Y"
return $infos['tm_mday']."/".$infos['tm_mon']."/".$infos['tm_year'];
break;
case 'time': // "%d/%m/%Y"
return $infos['tm_hour'].":".$infos['tm_min'];
break;
case '%m-%d':
return $infos['tm_mon']."-".$infos['tm_mday'];
break;
case 'strdate': // "%Y-%m-%d"
return $infos['tm_year']."-".$infos['tm_mon']."-".$infos['tm_mday'];
break;
case 'strdatetime': // "%Y-%m-%d_%H.%M.%S"
return $infos['tm_year']."-".$infos['tm_mon']."-".$infos['tm_mday']."_".$infos['tm_hour'].".".$infos['tm_min'].".".$infos['tm_sec'];
break;
case 'datetime': // "%d/%m/%Y - %H:%M"
return $infos['tm_mday']."/".$infos['tm_mon']."/".$infos['tm_year']." - ".$infos['tm_hour'].":".$infos['tm_min'];
break;
case 'print_date': // "j mois annee"
return $infos['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infos['tm_mon'])]." ".$infos['tm_year'];
break;
case 'print_time': // "%H:%M"
return $infos['tm_hour'].":".$infos['tm_min'];
break;
case 'print_date_with_day': // "jour j mois annee"
return $GLOBALS['PRINT_JOUR'][$infos['tm_wday']]." ".$infos['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infos['tm_mon'])]." ".$infos['tm_year'];
break;
case 'print_datetime': // "j mois annee à heure h min"
return $infos['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infos['tm_mon'])]." ".$infos['tm_year']." à ".$infos['tm_hour']."h".$infos['tm_min'];
break;
case 'mysql_date': // "%Y-%m-%d"
return $infos['tm_year']."-".$infos['tm_mon']."-".$infos['tm_mday'];
break;
case 'mysql_datetime': //"%Y-%m-%d %H:%M:%S"
return $infos['tm_year']."-".$infos['tm_mon']."-".$infos['tm_mday']." ".$infos['tm_hour'].":".$infos['tm_min'].":".$infos['tm_sec'];
break;
case 'timestamp': //timestamp
return mktime(intval($infos['tm_hour']),intval($infos['tm_min']),intval($infos['tm_sec']),intval($infos['tm_mon']),intval($infos['tm_mday']),intval($infos['tm_year']));
break;
default;
return "";
}
}
function formatPeriode($originalDeb='', $originalFin='', $originalFormat="mysql_datetime", $time=true) {
function formatPeriode($dateTxtDeb='', $dateTxtFin='', $format="mysql_datetime", $time=true, $dateTimeZoneTxt = "Europe/Paris") {
// DEBUT
$infosDeb = false;
if($originalDeb!='' && intVal($originalDeb)!=0) {
switch($originalFormat) {
case 'date':
$infosDeb = strptime($originalDeb,"%d/%m/%Y");
break;
case 'datetime':
$infosDeb = strptime($originalDeb,"%d/%m/%Y - %H:%M");
break;
case 'mysql_date':
$infosDeb = strptime($originalDeb,"%Y-%m-%d");
break;
case 'mysql_datetime':
$infosDeb = strptime($originalDeb,"%Y-%m-%d %H:%M:%S");
break;
case 'timestamp':
$infosDeb = array(
'tm_hour' => date('G',$originalDeb),
'tm_min' => intval( date('i',$originalDeb) ),
'tm_sec' => intval( date('s',$originalDeb) ),
'tm_mday' => date('j',$originalDeb),
'tm_mon' => date('n',$originalDeb)-1,
'tm_year' => date('Y',$originalDeb)-1900
);
break;
default;
$infosDeb = strptime(strftime("%c"),"%c");
}
if($originalFormat=="date" || $originalFormat=="mysql_date") {
$infosDeb['tm_hour'] = 0;
$infosDeb['tm_min'] = 0;
$infosDeb['tm_sec'] = 0;
}
}
else {
$infosDeb = strptime(strftime("%c"),"%c");
}
$infosDeb['tm_hour'] = sprintf("%02d", $infosDeb['tm_hour']);
$infosDeb['tm_min'] = sprintf("%02d", $infosDeb['tm_min']);
$infosDeb['tm_sec'] = sprintf("%02d", $infosDeb['tm_sec']);
$infosDeb['tm_mday'] = sprintf("%02d", $infosDeb['tm_mday']);
$infosDeb['tm_mon'] = sprintf("%02d", ($infosDeb['tm_mon']+1));
$infosDeb['tm_year'] = (1900+$infosDeb['tm_year']);
$deb = parseDate($dateTxtDeb, $format, $dateTimeZoneTxt);
if(!$deb) return "";
// FIN
$infosFin = false;
if($originalFin && ($originalFin!='' && intVal($originalFin)!=0)) {
switch($originalFormat) {
case 'date':
$infosFin = strptime($originalFin,"%d/%m/%Y");
break;
case 'datetime':
$infosFin = strptime($originalFin,"%d/%m/%Y - %H:%M");
break;
case 'mysql_date':
$infosFin = strptime($originalFin,"%Y-%m-%d");
break;
case 'mysql_datetime':
$infosFin = strptime($originalFin,"%Y-%m-%d %H:%M:%S");
break;
case 'timestamp':
$infosFin = array(
'tm_hour' => date('G',$originalFin),
'tm_min' => intval( date('i',$originalFin) ),
'tm_sec' => intval( date('s',$originalFin) ),
'tm_mday' => date('j',$originalFin),
'tm_mon' => date('n',$originalFin)-1,
'tm_year' => date('Y',$originalFin)-1900
);
break;
default;
$infosFin = strptime(strftime("%c"),"%c");
}
if($originalFormat=="date" || $originalFormat=="mysql_date") {
$infosFin['tm_hour'] = 0;
$infosFin['tm_min'] = 0;
$infosFin['tm_sec'] = 0;
}
}
$fin = parseDate($dateTxtFin, $format, $dateTimeZoneTxt);
if(!$infosFin) {
if($time && ($originalFormat!="date" && $originalFormat!="mysql_date")) return 'le '.$infosDeb['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosDeb['tm_mon'])]." ".$infosDeb['tm_year']." à ".$infosDeb['tm_hour']."h".$infosDeb['tm_min'];
else return 'le '.$infosDeb['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosDeb['tm_mon'])]." ".$infosDeb['tm_year'];
if($time) $time = dateFormatHasTime($format);
$deb_day = intval( $deb->format("j") );
$deb_month = $GLOBALS['PRINT_MOIS_COURT'][ intval($deb->format("m")) ];
$deb_year = intval( $deb->format("Y") );
$deb_date = "$deb_day $deb_month $deb_year";
$deb_time = $deb->format("H")."h".(intval($deb->format("i"))>0 ? $deb->format("i") : "");
$ret = "";
if(!$fin) {
$ret = "le ".$deb_date;
if($time) $ret .= " à ".$deb_time;
}
else {
$infosFin['tm_hour'] = sprintf("%02d", $infosFin['tm_hour']);
$infosFin['tm_min'] = sprintf("%02d", $infosFin['tm_min']);
$infosFin['tm_sec'] = sprintf("%02d", $infosFin['tm_sec']);
$infosFin['tm_mday'] = sprintf("%02d", $infosFin['tm_mday']);
$infosFin['tm_mon'] = sprintf("%02d", ($infosFin['tm_mon']+1));
$infosFin['tm_year'] = (1900+$infosFin['tm_year']);
$same_date = $deb->format('mysql_date') == $fin->format('mysql_date');
$same_time = $time ? $debut->format('time') == $fin->format('time') : false;
$same_month = $deb->format('Y-m') == $fin->format('Y-m');
$same_year = $deb->format('Y') == $fin->format('Y');
if($time && ($originalFormat!="date" && $originalFormat!="mysql_date")) {
if($infosDeb['tm_hour']==$infosFin['tm_hour']
&& $infosDeb['tm_min']==$infosFin['tm_min']
&& $infosDeb['tm_mday']==$infosFin['tm_mday']
&& $infosDeb['tm_mon']==$infosFin['tm_mon']
&& $infosDeb['tm_year']==$infosFin['tm_year']) {
// MEME JOUR, MEME HEURE
return 'le '.$infosDeb['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosDeb['tm_mon'])]." ".$infosDeb['tm_year']." à ".$infosDeb['tm_hour']."h".$infosDeb['tm_min'];
$fin_day = intval( $fin->format("j") );;
$fin_month = $GLOBALS['PRINT_MOIS_COURT'][ intval($fin->format("m")) ];
$fin_year = intval( $fin->format("Y") );
$fin_date = "$fin_day $fin_month $fin_year";
$fin_time = $fin->format("H")."h".(intval($fin->format("i"))>0 ? $fin->format("i") : "");
if($same_date) { // MEME JOUR
$ret = "le ".$deb_date;
if($time) {
if($same_time) $ret .= " à ".$deb_time; // MEME HEURE
else $ret .= " de ".$deb_time." à ".$fin_time; // HEURE DIFFERENTE
}
elseif($infosDeb['tm_mday']==$infosFin['tm_mday']
&& $infosDeb['tm_mon']==$infosFin['tm_mon']
&& $infosDeb['tm_year']==$infosFin['tm_year']) {
// MEME JOUR, HEURE DIFF
return 'le '.$infosDeb['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosDeb['tm_mon'])]." ".$infosDeb['tm_year']." de ".$infosDeb['tm_hour']."h".$infosDeb['tm_min']." à ".$infosFin['tm_hour']."h".$infosFin['tm_min'];
}
elseif($infosDeb['tm_mon']==$infosFin['tm_mon']
&& $infosDeb['tm_year']==$infosFin['tm_year']) {
// MEME MOIS, JOUR & HEURE DIFF
return 'du '.$infosDeb['tm_mday']." à ".$infosDeb['tm_hour']."h".$infosDeb['tm_min']." au ".$infosFin['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosFin['tm_mon'])]." ".$infosFin['tm_year']." à ".$infosFin['tm_hour']."h".$infosFin['tm_min'];
}
elseif($infosDeb['tm_year']==$infosFin['tm_year']) {
// MEME ANNEE, JOUR/MOIS & HEURE DIFF
return 'du '.$infosDeb['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosDeb['tm_mon'])]." à ".$infosDeb['tm_hour']."h".$infosDeb['tm_min']." au ".$infosFin['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosFin['tm_mon'])]." ".$infosFin['tm_year']." à ".$infosFin['tm_hour']."h".$infosFin['tm_min'];
}
else {
return 'du '.$infosDeb['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosDeb['tm_mon'])]." ".$infosDeb['tm_year']." à ".$infosDeb['tm_hour']."h".$infosDeb['tm_min']." au ".$infosFin['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosFin['tm_mon'])]." ".$infosFin['tm_year']." à ".$infosFin['tm_hour']."h".$infosFin['tm_min'];
}
}
else if($same_month) { // MEME MOIS
if($time) $ret = "du $deb_day à $deb_time au $fin_date à $fin_time";
else $ret = "du $deb_day au $fin_date";
}
else if($same_year) { // MEME ANNEE
if($time) $ret = "du $deb_day $deb_month à $deb_time au ".$fin_date." à ".$fin_time;
else $ret = "du $deb_day $deb_month au $fin_date";
}
else {
if($infosDeb['tm_mday']==$infosFin['tm_mday']
&& $infosDeb['tm_mon']==$infosFin['tm_mon']
&& $infosDeb['tm_year']==$infosFin['tm_year']) {
// MEME JOUR
return 'le '.$infosDeb['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosFin['tm_mon'])]." ".$infosFin['tm_year'];
}
elseif($infosDeb['tm_mon']==$infosFin['tm_mon']
&& $infosDeb['tm_year']==$infosFin['tm_year']) {
// MEME MOIS, JOUR DIFF
return 'du '.$infosDeb['tm_mday']." au ".$infosFin['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosFin['tm_mon'])]." ".$infosFin['tm_year'];
}
elseif($infosDeb['tm_year']==$infosFin['tm_year']) {
// MEME ANNEE, JOUR/MOIS
return 'du '.$infosDeb['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosDeb['tm_mon'])]." au ".$infosFin['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosFin['tm_mon'])]." ".$infosFin['tm_year'];
}
else {
return 'du '.$infosDeb['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosDeb['tm_mon'])]." ".$infosDeb['tm_year']." au ".$infosFin['tm_mday']." ".$GLOBALS['PRINT_MOIS_COURT'][intVal($infosFin['tm_mon'])]." ".$infosFin['tm_year'];
}
if($time) $ret = "du $deb_date à $deb_time au ".$fin_date." à ".$fin_time;
else $ret = "du $deb_date au $fin_date";
}
}
}
function getPeriode($target=false,$duree="3m") {
if(!$target) $target=strftime("%d/%m/%Y");
$targetDT = new DateTime(formatDate($target,"date","mysql_datetime"), new DateTimeZone(DATE_TIME_ZONE));
$limit1 = new DateTime("now", new DateTimeZone(DATE_TIME_ZONE));
$limit1->setDate($targetDT->format("Y"), $targetDT->format("m"), 0);
$limit1->setTime(0,0,0);
$limit2 = new DateTime("now", new DateTimeZone(DATE_TIME_ZONE));
$limit2->setDate($targetDT->format("Y"), $targetDT->format("m"), $targetDT->format("t"));
$limit2->setTime(23,59,59);
$int = new DateInterval('P0M');
switch($_SESSION['periode_view']) {
case "1m":
$int = new DateInterval('P1M');
break;
case "3m":
$int = new DateInterval('P3M');
break;
case "6m":
$int = new DateInterval('P6M');
break;
case "1y":
$int = new DateInterval('P1Y');
break;
}
$limit1->sub($int);
$limit2->add($int);
return array(
"start" => array(
'datetime' => $limit1,
'mysql_date' => $limit1->format('Y-m-d H:i:s')
),
"end" => array(
'datetime' => $limit2,
'mysql_date' => $limit2->format('Y-m-d H:i:s')
)
);
}
function getPeriodeJoursFeries($debut,$fin,$format="Y-m-d") {
$liste = array();
$dt = new DateTime($debut, new DateTimeZone("Europe/Paris"));
$dt->setTime(0, 0, 0);
$ft = new DateTime($fin, new DateTimeZone("Europe/Paris"));
$ft->setTime(23,59, 59);
$ndt = clone $dt;
while($ndt < $ft) {
$jf = getYearJoursFeries($ndt->format('Y'),$format);
foreach($jf as $k => $j) {
if( $j['datetime'] >= $dt && $j['datetime'] <= $ft ) $liste[$k] = $j;
}
$ndt->add( new DateInterval('P1Y') );
$ndt->setDate((int)$ndt->format('Y'),1,1);
}
ksort($liste);
return $liste;
}
function getYearJoursFeries($year=false,$format="Y-m-d") {
if(!$year) $year = intval(date('Y'));
$liste = array();
$date = new DateTime();
$date->setTimezone(new DateTimeZone('Europe/Paris'));
$date->setTime(0,0,0);
$easter_date = new DateTime('@' . easter_date($year));
$easter_date->setTimezone(new DateTimeZone('Europe/Paris'));
$easter_date->setTime(0,0,0);
// Jour de l'an - 1er janvier
$date->setDate($year, 1, 1);
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Jour de l'An"
);
// Fête du travail - 1er mai
$date->setDate($year, 5, 1);
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Fête du Travail"
);
// Victoire des alliés - 8 mai 1945
$date->setDate($year, 5, 8);
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Victoire des Alliés - 8 mai 1945"
);
// Fête nationale - 14 juillet
$date->setDate($year, 7, 14);
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Fête Nationale"
);
// Assomption - 15 août
$date->setDate($year, 8, 15);
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Assomption"
);
// Toussaint - 1er novembre
$date->setDate($year, 11, 1);
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Toussaint"
);
// Armistice 1ère Guerre Mondiale - 11 novembre
$date->setDate($year, 11, 11);
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Armistice 1ère Guerre Mondiale"
);
// Noël - 25 décembre
$date->setDate($year, 12, 25);
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Noël"
);
// Lundi de Pâques - lendemain du dimanche de Pâques
$date = clone $easter_date;
$date->add(new DateInterval('P1D'));
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Lundi de Pâques"
);
// Jeudi de l'ascension - 10 jours avant le Dimanche de Pentecôte
$date = clone $easter_date;
$date->add(new DateInterval('P39D'));
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Jeudi de l'Ascension"
);
// Lundi de Pentecôte - lendemain de la Pentecôte - 7 semaines après le lundi de pâque
$date = clone $easter_date;
$date->add(new DateInterval('P50D'));
$liste[ $date->format($format) ] = array(
'datetime' => clone $date,
'description' => "Lundi de Pentecôte"
);
return $liste;
}
function diffNbJours($debut, $fin,$format='date') {
//60 secondes X 60 minutes X 24 heures dans une journée
$nbSecondes= 60*60*24;
$debut_s = formatDate($debut,$format,'strdate');
$fin_s = formatDate($fin,$format,'strdate');
$debut_ts = strtotime($debut_s);
$fin_ts = strtotime($fin_s);
$diff = $fin_ts - $debut_ts;
return floor($diff / $nbSecondes)+1;
}
function diffNbJours2($debut, $fin) {
$dt1 = new DateTime($debut);
$dt1->setTime(0, 0, 0);
$dt2 = new DateTime($fin);
$dt2->setTime(23,59, 59);
$itv = date_diff($dt1, $dt2);
return intval($itv->format('%a'))+1;
}
function getNbOpenDays($date_start, $date_end) {
// $date_depart && $date_end au format YYYY-MM-DD
$dtd = date_create($date_start);
$dtd->setTime(0, 0, 0);
$dtf = date_create($date_end);
$dtf->setTime(0, 0, 0);
$dtf->modify( '+1 day' );
$arr_bank_holidays = array(); // Tableau des jours feriés
// On boucle dans le cas où l'année de départ serait différente de l'année d'arrivée
$diff_year = $dtf->format('Y') - $dtd->format('Y');
for ($i = 0; $i <= $diff_year; $i++) {
$year = (int)$dtd->format('Y') + $i;
// Liste des jours feriés
$arr_bank_holidays[] = '1_1_'.$year; // Jour de l'an
$arr_bank_holidays[] = '1_5_'.$year; // Fete du travail
$arr_bank_holidays[] = '8_5_'.$year; // Victoire 1945
$arr_bank_holidays[] = '14_7_'.$year; // Fete nationale
$arr_bank_holidays[] = '15_8_'.$year; // Assomption
$arr_bank_holidays[] = '1_11_'.$year; // Toussaint
$arr_bank_holidays[] = '11_11_'.$year; // Armistice 1918
$arr_bank_holidays[] = '25_12_'.$year; // Noel
// Récupération de paques. Permet ensuite d'obtenir le jour de l'ascension et celui de la pentecote
$easter = easter_date($year);
$arr_bank_holidays[] = date('j_n_'.$year, $easter + 86400); // Paques
$arr_bank_holidays[] = date('j_n_'.$year, $easter + (86400*39)); // Ascension
$arr_bank_holidays[] = date('j_n_'.$year, $easter + (86400*50)); // Pentecote
}
$nb_days_open = 0;
foreach (new DatePeriod($dtd, new DateInterval('P1D'), $dtf) as $dt) {
$dt = new DateTime($dt->format('Y-m-d'), new DateTimeZone("Europe/Paris"));
// Si le jour suivant n'est ni un dimanche (0) ou un samedi (6), ni un jour férié, on incrémente les jours ouvrés
if (!in_array($dt->format('w'), array(0, 6)) && !in_array($dt->format('j_n_Y'), $arr_bank_holidays)) $nb_days_open++;
}
return $nb_days_open;
return $ret;
}
/*** REMPLACE SYMBOLES ***/

View File

@ -288,8 +288,8 @@ function eraseContrat($id) {
function printContratsList($list) {
$GLOBALS['smarty'] -> assign('logo', "file://".PUBLIC_HTML_ADMIN_PATH."/img/logo.png");
$GLOBALS['smarty'] -> assign('date', formatDate('', '', 'print_date'));
$GLOBALS['smarty'] -> assign('time', formatDate('', '', 'print_time'));
$GLOBALS['smarty'] -> assign('date', formatDate('now', false, 'print_date'));
$GLOBALS['smarty'] -> assign('time', formatDate('now', false, 'print_time'));
$GLOBALS['smarty'] -> assign('cssFiles',array(
"file://".PUBLIC_HTML_ADMIN_PATH."css/bootstrap_print_light.css",
"file://".PUBLIC_HTML_ADMIN_PATH."css/print.css"
@ -351,7 +351,7 @@ function printContratsList($list) {
$dompdf->setOptions($options);
$dompdf->render();
$dompdf->stream("Liste des contrats (".formatDate('', '', 'strdate').").pdf");
$dompdf->stream("Liste des contrats (".formatDate('now', false, 'strdate').").pdf");
die();
}

View File

@ -280,11 +280,11 @@ function getLegumeTarif($legume, $groupe, $date=false, $groupe_exclusif=true) {
// DATE
if($date == 'next') {
$date = formatDate('', '', 'mysql_date');
$date = formatDate('now', false, 'mysql_date');
$sql .= " AND ".LEGUMES_TARIFS_TABLE.".`date`>'".$date."'";
}
else {
if(!isValidDate($date, "mysql_date")) $date = formatDate('', '', 'mysql_date');
if(!isValidDate($date, "mysql_date")) $date = formatDate('now', false, 'mysql_date');
$sql .= " AND ".LEGUMES_TARIFS_TABLE.".`date`<='".$date."'";
}
@ -371,8 +371,8 @@ function eraseLegumeTarif($id) {
function printLegumesList() {
$GLOBALS['smarty'] -> assign('logo', "file://".PUBLIC_HTML_ADMIN_PATH."/img/logo.png");
$GLOBALS['smarty'] -> assign('date', formatDate('', '', 'print_date'));
$GLOBALS['smarty'] -> assign('time', formatDate('', '', 'print_time'));
$GLOBALS['smarty'] -> assign('date', formatDate('now', false, 'print_date'));
$GLOBALS['smarty'] -> assign('time', formatDate('now', false, 'print_time'));
$GLOBALS['smarty'] -> assign('cssFiles',array(
"file://".PUBLIC_HTML_ADMIN_PATH."css/bootstrap_print_light.css",
"file://".PUBLIC_HTML_ADMIN_PATH."css/print.css"
@ -388,6 +388,6 @@ function printLegumesList() {
$dompdf->setOptions($options);
$dompdf->render();
$dompdf->stream("Liste des légumes (".formatDate('', '', 'strdate').").pdf");
$dompdf->stream("Liste des légumes (".formatDate('now', false, 'strdate').").pdf");
exit();
}