Passed
Push — master ( 1faf28...95951e )
by Anthony
02:22
created

DateHeure::date_fr_texte()   B

Complexity

Conditions 6
Paths 5

Size

Total Lines 31
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 6
eloc 21
nc 5
nop 1
dl 0
loc 31
rs 8.439
c 0
b 0
f 0
1
<?php
2
	namespace core\functions;
3
4
	use core\HTML\flashmessage\FlashMessage;
5
6
	/**
7
	 * Class DateHeure
8
	 * contient des fonctions afin de faire des calculs sur des dates et des heures,
9
	 * class static
10
	 * @package core\functions
11
	 */
12
	class DateHeure {
13
		public static $annee;
14
		public static $mois;
15
		public static $jour;
16
17
18
19
		/**
20
		 * Fonction pour passer du format H:m en seconde
21
		 * @param int $heure recoit l'heure a passer en minute
22
		 * @param int $minute recoit les minutes a passer en minute
23
		 * @return double|null
24
		 **/
25
		public static function Heureenseconde($heure, $minute) {
26
			if ((is_numeric($heure)) && (is_numeric($minute))) {
27
				$heuresec = $heure * 3600;
28
				$minutesec = $minute * 60;
29
				$heureseconde = $heuresec + $minutesec;
30
				return $heureseconde;
31
			}
32
			else {
33
				FlashMessage::setFlash("La/les valeurs entrée n'est/ne sont pas de type int");
34
				FlashMessage::getFlash();
35
				die();
36
			}
37
		}
38
39
		/**
40
		 * passe des secondes au format H:m
41
		 * @return string
42
		 */
43
		public static function Secondeenheure($seconde) {
44
			if (is_numeric($seconde)) {
45
				$heure = intval($seconde / 3600);
46
				$minute = intval(($seconde % 3600) / 60);
47
				$seconde = intval(($seconde % 3600) % 60);
48
49
				$temps = $heure."h".$minute."m".$seconde;
50
				return $temps;
51
			}
52
			else {
53
				FlashMessage::setFlash("La valeur entrée n'est pas de type int");
54
				FlashMessage::getFlash();
55
				die();
56
			}
57
		}
58
59
		/**
60
		 * fonction qui change le format heure 12:10 en 12h10
61
		 * @param $temps
62
		 * @return mixed
63
		 */
64
		public static function ChangerFormatHeure($temps) {
65
			if (ChaineCaractere::FindInString($temps, ":") === true) {
66
				$chaine = str_replace(":", "h", $temps);
67
68
				return $chaine;
69
			}
70
			else {
71
				FlashMessage::setFlash("La valeur entrée n'est pas de type h:m");
72
				FlashMessage::getFlash();
73
				die();
74
			}
75
		}
76
77
		/**
78
		 * affiche la date du jour au format jeudi 12 janvier
79
		 * @param integer $date si NULL on prend la date du jour sinon on prend la date qui est mise
80
		 * @return string
81
		 */
82
		public static function date_fr_texte($date = 0) {
83
			$mois = array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Decembre");
84
			$jours = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
85
86
			if ($date == 0) {
87
				return $jours[date("w")]." ".date("j").(date("j") == 1 ? "er" : " ").$mois[date("n") - 1]." ".date("Y");
88
			}
89
			else if ((strpos($date, "-") > 0) || (strpos($date, "/") > 0)) {
90
				$explode = explode("/", $date);
91
				$jour_d = $explode[0];
92
				$mois_d = $explode[1];
93
				$annee_d = $explode[2];
94
95
				//si $pos > 0 cela veut dire qu'on est en YYYY-mm-jj
96
				$pos = strpos($date, "-");
97
				if ($pos > 0) {
98
					$explode = explode("-", $date);
99
					$jour_d = $explode[2];
100
					$mois_d = $explode[1];
101
					$annee_d = $explode[0];
102
				}
103
104
				$jour_semaine = $jours[date("w", mktime(0, 0, 0, $mois_d, $jour_d, $annee_d))];
105
106
				return $jour_semaine." ".$jour_d." ".$mois[$mois_d - 1]." ".$annee_d;
107
			}
108
109
			FlashMessage::setFlash("Format de date passé en paramètre ne correspond pas à YYYY-mm-jj ou jj/mm/YYYY");
110
			FlashMessage::getFlash();
111
			die();
112
		}
113
114
		/**
115
		 * Transformation de la date format YYYY-mm-jj en jj/mm/aaaa
116
		 * @param string $date corespond a la date au format YYYY-mm-jj
117
		 * @return string
118
		 */
119
		public static function modif_date_affichage($date) {
120
			$pos = strpos($date, "-");
121
122
			if ($pos > 0) {
123
				$explode = explode("-", $date);
124
				$jour = $explode[2];
125
				$mois = $explode[1];
126
				$annee = $explode[0];
127
128
				self::$jour = $jour;
129
				self::$mois = $mois;
130
				self::$annee = $annee;
131
132
				return $jour."/".$mois."/".$annee;
133
			}
134
			else {
135
				FlashMessage::setFlash("format de date passé en paramètre ne correspond pas à YYYY-mm-jj");
136
				FlashMessage::getFlash();
137
				die();
138
			}
139
		}
140
141
		/**
142
		 * Transformation de la date format jj/mm/aaaa en YYYY-mm-jj pour insertion bdd
143
		 * @param string $date corespond a la date au format jj/mm/aaaa
144
		 * @return string
145
		 */
146
		public static function modif_date_bdd($date) {
147
			$pos = strpos($date, "/");
148
149
			if ($pos > 0) {
150
				$explode = explode("/", $date);
151
				$jour = $explode[0];
152
				$mois = $explode[1];
153
				$annee = $explode[2];
154
155
				return $annee."-".$mois."-".$jour;
156
			}
157
			else {
158
				FlashMessage::setFlash("Format de date passé en paramètre ne correspond pas à jj/mm/aaaa");
159
				FlashMessage::getFlash();
160
				die();
161
			}
162
		}
163
164
		/**
165
		 * fonction qui permet de passer une date d'une bdd en tableau
166
		 * @param $date
167
		 * @return array
168
		 */
169
		public static function dateBddToArray($date) {
170
			$array = explode("-", $date);
171
172
			return $array;
173
		}
174
	}