PageRenderTime 64ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/application/helpers/bju_helper.php

https://bitbucket.org/bo_hmb/bo_hmb
PHP | 323 lines | 275 code | 31 blank | 17 comment | 52 complexity | 590c1a8ab4a9fce728103576ef74cc76 MD5 | raw file
Possible License(s): Apache-2.0, MIT, LGPL-2.1, MPL-2.0-no-copyleft-exception, GPL-2.0
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2. if ( ! function_exists('tgl_indo'))
  3. {
  4. function tgl_indo($tgl)
  5. {
  6. $ubah = gmdate($tgl, time()+60*60*8);
  7. $pecah = explode("-",$ubah);
  8. $tanggal = $pecah[2];
  9. $bulan = bulan($pecah[1]);
  10. $tahun = $pecah[0];
  11. return $tanggal.' '.$bulan.' '.$tahun;
  12. }
  13. }
  14. if ( ! function_exists('bulan'))
  15. {
  16. function bulan($bln)
  17. {
  18. switch ($bln)
  19. {
  20. case 1:
  21. return "Januari";
  22. break;
  23. case 2:
  24. return "Februari";
  25. break;
  26. case 3:
  27. return "Maret";
  28. break;
  29. case 4:
  30. return "April";
  31. break;
  32. case 5:
  33. return "Mei";
  34. break;
  35. case 6:
  36. return "Juni";
  37. break;
  38. case 7:
  39. return "Juli";
  40. break;
  41. case 8:
  42. return "Agustus";
  43. break;
  44. case 9:
  45. return "September";
  46. break;
  47. case 10:
  48. return "Oktober";
  49. break;
  50. case 11:
  51. return "November";
  52. break;
  53. case 12:
  54. return "Desember";
  55. break;
  56. }
  57. }
  58. }
  59. if ( ! function_exists('nama_hari'))
  60. {
  61. function nama_hari($tanggal)
  62. {
  63. $ubah = gmdate($tanggal, time()+60*60*8);
  64. $pecah = explode("-",$ubah);
  65. $tgl = $pecah[2];
  66. $bln = $pecah[1];
  67. $thn = $pecah[0];
  68. $nama = date("l", mktime(0,0,0,$bln,$tgl,$thn));
  69. $nama_hari = "";
  70. if($nama=="Sunday") {$nama_hari="Minggu";}
  71. else if($nama=="Monday") {$nama_hari="Senin";}
  72. else if($nama=="Tuesday") {$nama_hari="Selasa";}
  73. else if($nama=="Wednesday") {$nama_hari="Rabu";}
  74. else if($nama=="Thursday") {$nama_hari="Kamis";}
  75. else if($nama=="Friday") {$nama_hari="Jumat";}
  76. else if($nama=="Saturday") {$nama_hari="Sabtu";}
  77. return $nama_hari;
  78. }
  79. }
  80. if ( ! function_exists('hitung_mundur'))
  81. {
  82. function hitung_mundur($wkt)
  83. {
  84. $waktu=array( 365*24*60*60 => "tahun",
  85. 30*24*60*60 => "bulan",
  86. 7*24*60*60 => "minggu",
  87. 24*60*60 => "hari",
  88. 60*60 => "jam",
  89. 60 => "menit",
  90. 1 => "detik");
  91. $hitung = strtotime(gmdate ("Y-m-d H:i:s", time () +60 * 60 * 8))-$wkt;
  92. $hasil = array();
  93. if($hitung<5)
  94. {
  95. $hasil = 'kurang dari 5 detik yang lalu';
  96. }
  97. else
  98. {
  99. $stop = 0;
  100. foreach($waktu as $periode => $satuan)
  101. {
  102. if($stop>=6 || ($stop>0 && $periode<60)) break;
  103. $bagi = floor($hitung/$periode);
  104. if($bagi > 0)
  105. {
  106. $hasil[] = $bagi.' '.$satuan;
  107. $hitung -= $bagi*$periode;
  108. $stop++;
  109. }
  110. else if($stop>0) $stop++;
  111. }
  112. $hasil=implode(' ',$hasil).' yang lalu';
  113. }
  114. return $hasil;
  115. }
  116. }
  117. if ( ! function_exists('bulan_romawi'))
  118. {
  119. function bulan_romawi($n)
  120. {
  121. $hasil = '';
  122. $iromawi = array('','I','II','III','IV','V','VI','VII','VIII','IX','X',20=>'XX',30=>'XXX',40=>'XL',50=>'L',
  123. 60=>'LX',70=>'LXX',80=>'LXXX',90=>'XC',100=>'C',200=>'CC',300=>'CCC',400=>'CD',500=>'D',600=>'DC',700=>'DCC',
  124. 800=>'DCCC',900=>'CM',1000=>'M',2000=>'MM',3000=>'MMM');
  125. if(array_key_exists($n,$iromawi)){
  126. $hasil = $iromawi[$n];
  127. }elseif($n >= 11 && $n <= 99){
  128. $i = $n % 10;
  129. $hasil = $iromawi[$n-$i] . Romawi($n % 10);
  130. }elseif($n >= 101 && $n <= 999){
  131. $i = $n % 100;
  132. $hasil = $iromawi[$n-$i] . Romawi($n % 100);
  133. }else{
  134. $i = $n % 1000;
  135. $hasil = $iromawi[$n-$i] . Romawi($n % 1000);
  136. }
  137. return $hasil;
  138. }
  139. }
  140. /**
  141. * Terbilang Helper
  142. *
  143. * @package CodeIgniter
  144. * @subpackage Helpers
  145. * @category Helpers
  146. * @author Gede Lumbung
  147. * @link http://gedelumbung.com
  148. */
  149. if ( ! function_exists('number_to_words'))
  150. {
  151. function number_to_words($number)
  152. {
  153. $before_comma = trim(to_word($number));
  154. $after_comma = trim(comma($number));
  155. // return ucwords($results = $before_comma.' koma '.$after_comma);
  156. return ucwords($results = $before_comma.' Rupiah ');
  157. }
  158. function to_word($number)
  159. {
  160. $words = "";
  161. $arr_number = array(
  162. "",
  163. "satu",
  164. "dua",
  165. "tiga",
  166. "empat",
  167. "lima",
  168. "enam",
  169. "tujuh",
  170. "delapan",
  171. "sembilan",
  172. "sepuluh",
  173. "sebelas");
  174. if($number<12)
  175. {
  176. @$words = " ".$arr_number[$number];
  177. }
  178. else if($number<20)
  179. {
  180. $words = to_word($number-10)." belas";
  181. }
  182. else if($number<100)
  183. {
  184. $words = to_word($number/10)." puluh ".to_word($number%10);
  185. }
  186. else if($number<200)
  187. {
  188. $words = "seratus ".to_word($number-100);
  189. }
  190. else if($number<1000)
  191. {
  192. $words = to_word($number/100)." ratus ".to_word($number%100);
  193. }
  194. else if($number<2000)
  195. {
  196. $words = "seribu ".to_word($number-1000);
  197. }
  198. else if($number<1000000)
  199. {
  200. $words = to_word($number/1000)." ribu ".to_word($number%1000);
  201. }
  202. else if($number<1000000000)
  203. {
  204. $words = to_word($number/1000000)." juta ".to_word($number%1000000);
  205. }
  206. else
  207. {
  208. $words = "undefined";
  209. }
  210. return $words;
  211. }
  212. function comma($number)
  213. {
  214. $after_comma = stristr($number,',');
  215. $arr_number = array(
  216. "nol",
  217. "satu",
  218. "dua",
  219. "tiga",
  220. "empat",
  221. "lima",
  222. "enam",
  223. "tujuh",
  224. "delapan",
  225. "sembilan");
  226. $results = "";
  227. $length = strlen($after_comma);
  228. $i = 1;
  229. while($i<$length)
  230. {
  231. $get = substr($after_comma,$i,1);
  232. $results .= " ".$arr_number[$get];
  233. $i++;
  234. }
  235. return $results;
  236. }
  237. }
  238. if ( ! function_exists('hitung_umur'))
  239. {
  240. function hitung_umur($tanggal_lahir) {
  241. list($year,$month,$day) = explode("-",$tanggal_lahir);
  242. $year_diff = date("Y") - $year;
  243. $month_diff = date("m") - $month;
  244. $day_diff = date("d") - $day;
  245. if ($month_diff < 0) $year_diff--;
  246. elseif (($month_diff==0) && ($day_diff < 0)) $year_diff--;
  247. return $year_diff;
  248. }
  249. }
  250. if( ! function_exists('selisih_jam'))
  251. {
  252. function selisih_jam($tgl_jam_start, $tgl_jam_end){
  253. $datetime1 = new DateTime($tgl_jam_start);
  254. $datetime2 = new DateTime($tgl_jam_end);
  255. $interval = $datetime1->diff($datetime2);
  256. $jam = $interval->format('%h');
  257. $menit = $interval->format('%i');
  258. if( $menit >= 30 ) {
  259. $jam_final = $jam+1;
  260. }else{
  261. $jam_final = $jam;
  262. }
  263. // die(print_r( $interval->format('%h')." Hours ".$interval->format('%i')." Minutes"));
  264. return $jam_final;
  265. }
  266. }
  267. if( ! function_exists('selisih_hari'))
  268. {
  269. function selisih_hari($tglA,$tglB)
  270. {
  271. $tgl1 = $tglA;
  272. $tgl2 = $tglB;
  273. // memecah tanggal untuk mendapatkan bagian tanggal, bulan dan tahun
  274. // dari tanggal pertama
  275. $pecah1 = explode("-", $tgl1);
  276. $date1 = $pecah1[2];
  277. $month1 = $pecah1[1];
  278. $year1 = $pecah1[0];
  279. // memecah tanggal untuk mendapatkan bagian tanggal, bulan dan tahun
  280. // dari tanggal kedua
  281. $pecah2 = explode("-", $tgl2);
  282. $date2 = $pecah2[2];
  283. $month2 = $pecah2[1];
  284. $year2 = $pecah2[0];
  285. // menghitung JDN dari masing-masing tanggal
  286. $jd1 = GregorianToJD($month1, $date1, $year1);
  287. $jd2 = GregorianToJD($month2, $date2, $year2);
  288. // hitung selisih hari kedua tanggal
  289. $selisih = $jd2 - $jd1;
  290. return $selisih;
  291. }
  292. }