PageRenderTime 37ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

/braldahim/library/Bral/Util/ConvertDate.php

https://github.com/Canop/braldahim
PHP | 258 lines | 153 code | 44 blank | 61 comment | 9 complexity | 5b5639066f37151ddd5b3f9081e80579 MD5 | raw file
  1. <?php
  2. /**
  3. * This file is part of Braldahim, under Gnu Public Licence v3.
  4. * See licence.txt or http://www.gnu.org/licenses/gpl-3.0.html
  5. * Copyright: see http://www.braldahim.com/sources
  6. */
  7. class Bral_Util_ConvertDate {
  8. private function __construct(){}
  9. /* Convertit un date mysql vers une date php
  10. * @return date
  11. */
  12. public static function get_date_mysql_datetime($pattern, $pdate) {
  13. $mdate = explode("-", $pdate);
  14. return date($pattern, mktime(0,0,0,$mdate[1],$mdate[2],$mdate[0]));
  15. }
  16. /* Convertit un datetime mysql vers une date php
  17. * @return date
  18. */
  19. public static function get_datetime_mysql_datetime($pattern, $pdatetime) {
  20. $break = explode(" ", $pdatetime);
  21. $datebreak = explode("-", $break[0]);
  22. $time = explode(":", $break[1]);
  23. return date($pattern, mktime($time[0],$time[1],$time[2],$datebreak[1],$datebreak[2],$datebreak[0]));
  24. }
  25. /* Convertit un datetime mysql vers un timestamp
  26. * @return timestamp
  27. */
  28. public static function get_epoch_mysql_datetime($date) {
  29. $break = explode(" ", $date);
  30. $datebreak = explode("-", $break[0]);
  31. $time = explode(":", $break[1]);
  32. $epoch = date("U", mktime($time[0],$time[1],$time[2],$datebreak[1],$datebreak[2],$datebreak[0]));
  33. return $epoch;
  34. }
  35. /* Ajoute une heure (H:m:s) a un datetime mysql et
  36. * retourne le resultat en timestamp
  37. * @return timestamp
  38. */
  39. public static function get_epoch_add_time_to_date($date, $add_time) {
  40. $break = explode(" ", $date);
  41. $datebreak = explode("-", $break[0]);
  42. $time = explode(":", $break[1]);
  43. $add_time = explode(":", $add_time);
  44. $epoch = date("U", mktime($time[0]+$add_time[0],$time[1]+$add_time[1],$time[2]+$add_time[2],
  45. $datebreak[1],$datebreak[2],$datebreak[0]));
  46. return $epoch;
  47. }
  48. /* Soustrait une heure (H:m:s) a un datetime mysql et
  49. * retourne le resultat en timestamp
  50. * @return timestamp
  51. */
  52. public static function get_epoch_remove_time_to_date($date, $rem_time) {
  53. $break = explode(" ", $date);
  54. $datebreak = explode("-", $break[0]);
  55. $time = explode(":", $break[1]);
  56. $rem_time = explode(":", $rem_time);
  57. $epoch = date("U", mktime($time[0]-$rem_time[0],$time[1]-$rem_time[1],$time[2]-$rem_time[2],
  58. $datebreak[1],$datebreak[2],$datebreak[0]));
  59. return $epoch;
  60. }
  61. /* Ajoute une date (Y-m-d H:m:s) a un datetime mysql et
  62. * retourne le resultat en timestamp
  63. * @return timestamp
  64. */
  65. public static function get_epoch_add_date_to_date($date, $add_date) {
  66. $break = explode(" ", $date);
  67. $datebreak = explode("-", $break[0]);
  68. $time = explode(":", $break[1]);
  69. $add_break = explode(" ", $add_date);
  70. $add_datebreak = explode("-", $add_break[0]);
  71. $add_time = explode(":", $add_break[1]);
  72. $epoch = date("U", mktime($time[0]+$add_time[0],$time[1]+$add_time[1],$time[2]+$add_time[2],
  73. $datebreak[1]+$add_datebreak[1],$datebreak[2]+$add_datebreak[2],$datebreak[0]+$add_datebreak[0]));
  74. return $epoch;
  75. }
  76. /* Ajoute un/des jours a un datetime mysql et
  77. * retourne le resultat en timestamp
  78. * @return timestamp
  79. */
  80. public static function get_epoch_add_day_to_date($date, $add_day) {
  81. $break = explode(" ", $date);
  82. $datebreak = explode("-", $break[0]);
  83. $time = explode(":", $break[1]);
  84. $epoch = date("U", mktime($time[0],$time[1],$time[2],
  85. $datebreak[1],$datebreak[2]+$add_day,$datebreak[0]));
  86. return $epoch;
  87. }
  88. /* Ajoute une heure (H:m:s) a un datetime mysql et
  89. * retourne le resultat en date
  90. * @return date
  91. */
  92. public static function get_date_add_time_to_date($date, $add_time) {
  93. return date("Y-m-d H:i:s", self::get_epoch_add_time_to_date($date, $add_time));
  94. }
  95. /* Soustrait une heure (H:m:s) a un datetime mysql et
  96. * retourne le resultat en date
  97. * @return date
  98. */
  99. public static function get_date_remove_time_to_date($date, $rem_time) {
  100. return date("Y-m-d H:i:s", self::get_epoch_remove_time_to_date($date, $rem_time));
  101. }
  102. /* Ajoute une date (Y-m-d H:m:s) a un datetime mysql et
  103. * retourne le resultat en date
  104. * @return date
  105. */
  106. public static function get_date_add_date_to_date($date, $add_time) {
  107. return date("Y-m-d H:i:s", self::get_epoch_add_date_to_date($date, $add_time));
  108. }
  109. /* Ajoute un/des jours a un datetime mysql et
  110. * retourne le resultat en date & time "Y-m-d H:i:s"
  111. * @return date
  112. */
  113. public static function get_date_add_day_to_date($date, $add_day) {
  114. return date("Y-m-d H:i:s", self::get_epoch_add_day_to_date($date, $add_day));
  115. }
  116. public static function get_divise_time_to_time($time, $div) {
  117. $time = explode(":", $time);
  118. $h = $time[0] * 3600;
  119. $m = $time[1] * 60;
  120. $s = $time[2] * 1;
  121. $n = $h + $m + $s;
  122. $n2 = $n / $div;
  123. $h2 = intval($n2/3600);
  124. $restant = $n2- ($h2 * 3600);
  125. $m2 = intval($restant / 60);
  126. $restant = $restant - ($m2 * 60);
  127. $s2 = intval($restant);
  128. $r = $h2.":".$m2.":".$s2;
  129. return $r;
  130. }
  131. public static function get_time_from_minutes($minutes) {
  132. $h = floor($minutes / 60);
  133. $m = ($minutes - $h * 60);
  134. $s = 0;
  135. $r = $h.":".$m.":".$s;
  136. return $r;
  137. }
  138. /* Soustrait une heure (H:m:s) a un time mysql et
  139. * retourne le resultat en time
  140. * @return timestamp
  141. */
  142. public static function get_time_remove_time_to_time($time, $add_time) {
  143. $time = explode(":", $time);
  144. $add_time = explode(":", $add_time);
  145. $h = $time[0] * 3600;
  146. $m = $time[1] * 60;
  147. $s = $time[2] * 1;
  148. $stime = $h + $m + $s;
  149. $h = $add_time[0] * 3600;
  150. $m = $add_time[1] * 60;
  151. $s = $add_time[2] * 1;
  152. $sadd_time = $h + $m + $s;
  153. $seconds = $stime - $sadd_time;
  154. $h2 = intval($seconds/3600);
  155. $restant = $seconds - ($h2 * 3600);
  156. $m2 = intval($restant / 60);
  157. $restant = $restant - ($m2 * 60);
  158. $s2 = intval($restant);
  159. $r = $h2.":".$m2.":".$s2;
  160. return $r;
  161. }
  162. /* Ajoute une heure (H:m:s) a un time mysql et
  163. * retourne le resultat en time
  164. * @return timestamp
  165. */
  166. public static function get_time_add_time_to_time($time, $add_time) {
  167. $time = explode(":", $time);
  168. $add_time = explode(":", $add_time);
  169. $h = $time[0] * 3600;
  170. $m = $time[1] * 60;
  171. $s = $time[2] * 1;
  172. $stime = $h + $m + $s;
  173. $h = $add_time[0] * 3600;
  174. $m = $add_time[1] * 60;
  175. $s = $add_time[2] * 1;
  176. $sadd_time = $h + $m + $s;
  177. $seconds = $stime + $sadd_time;
  178. $h2 = intval($seconds/3600);
  179. $restant = $seconds - ($h2 * 3600);
  180. $m2 = intval($restant / 60);
  181. $restant = $restant - ($m2 * 60);
  182. $s2 = intval($restant);
  183. $r = $h2.":".$m2.":".$s2;
  184. return $r;
  185. }
  186. /*
  187. * Retourne le temps en minutes d'une heure donnée (H:m:s)
  188. */
  189. public static function getMinuteFromHeure($time) {
  190. $time = explode(":", $time);
  191. $h = $time[0] * 60;
  192. $m = $time[1] * 1;
  193. //$s = $time[2] * 1;
  194. $minutes = $h + $m;
  195. return $minutes;
  196. }
  197. /*
  198. * Converti un temps un minute en heure H:m:s .
  199. */
  200. public static function getHeureFromMinute($minutes) {
  201. $heures = floor($minutes / 60);
  202. $min = $minutes - $heures * 60;
  203. if ($heures == 0) {
  204. $heures = "00";
  205. }
  206. if ($min == 0) {
  207. $min = "00";
  208. }
  209. if ($min != "00" && $min != 0 && floor($min/10)==0){
  210. $min = "0".$min;
  211. }
  212. return $heures.":".$min.":00";
  213. }
  214. }