126 lines
3.6 KiB
PHP
126 lines
3.6 KiB
PHP
<?php
|
|
|
|
function formatIndo($tanggal, $format = 'd F Y') {
|
|
// Array nama bulan dalam bahasa Indonesia
|
|
$bulan = array(
|
|
1 => 'Januari',
|
|
2 => 'Februari',
|
|
3 => 'Maret',
|
|
4 => 'April',
|
|
5 => 'Mei',
|
|
6 => 'Juni',
|
|
7 => 'Juli',
|
|
8 => 'Agustus',
|
|
9 => 'September',
|
|
10 => 'Oktober',
|
|
11 => 'November',
|
|
12 => 'Desember'
|
|
);
|
|
|
|
// Mengubah string tanggal ke objek DateTime
|
|
$date = new DateTime($tanggal);
|
|
|
|
// Format bulan dalam bahasa Indonesia
|
|
$bulanIndo = $bulan[$date->format('n')];
|
|
|
|
// Format tanggal sesuai parameter format
|
|
switch ($format) {
|
|
case 'd F Y':
|
|
return $date->format('d') . ' ' . $bulanIndo . ' ' . $date->format('Y');
|
|
case 'F Y':
|
|
return $bulanIndo . ' ' . $date->format('Y');
|
|
default:
|
|
return $date->format($format);
|
|
}
|
|
}
|
|
|
|
function penyebut($nilai) {
|
|
$nilai = abs($nilai);
|
|
$huruf = array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas");
|
|
$temp = "";
|
|
if ($nilai < 12) {
|
|
$temp = " ". $huruf[$nilai];
|
|
} else if ($nilai <20) {
|
|
$temp = penyebut($nilai - 10). " belas";
|
|
} else if ($nilai < 100) {
|
|
$temp = penyebut($nilai/10)." puluh". penyebut($nilai % 10);
|
|
} else if ($nilai < 200) {
|
|
$temp = " seratus" . penyebut($nilai - 100);
|
|
} else if ($nilai < 1000) {
|
|
$temp = penyebut($nilai/100) . " ratus" . penyebut($nilai % 100);
|
|
} else if ($nilai < 2000) {
|
|
$temp = " seribu" . penyebut($nilai - 1000);
|
|
} else if ($nilai < 1000000) {
|
|
$temp = penyebut($nilai/1000) . " ribu" . penyebut($nilai % 1000);
|
|
} else if ($nilai < 1000000000) {
|
|
$temp = penyebut($nilai/1000000) . " juta" . penyebut($nilai % 1000000);
|
|
} else if ($nilai < 1000000000000) {
|
|
$temp = penyebut($nilai/1000000000) . " milyar" . penyebut(fmod($nilai,1000000000));
|
|
} else if ($nilai < 1000000000000000) {
|
|
$temp = penyebut($nilai/1000000000000) . " trilyun" . penyebut(fmod($nilai,1000000000000));
|
|
}
|
|
return $temp;
|
|
}
|
|
|
|
function terbilang($nilai) {
|
|
if($nilai<0) {
|
|
$hasil = "minus ". trim(penyebut($nilai));
|
|
} else {
|
|
$hasil = trim(penyebut($nilai));
|
|
}
|
|
return $hasil;
|
|
}
|
|
|
|
function baseurl($path = '') {
|
|
// Ambil URL dasar aplikasi
|
|
$baseurl = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
|
|
|
|
// Gabungkan dengan path tambahan jika ada
|
|
if ($path) {
|
|
// Menghapus leading slashes dari path untuk menghindari double slashes
|
|
$path = ltrim($path, '/');
|
|
// Gabungkan base URL dengan path
|
|
$baseurl = rtrim($baseurl, '/') . '/' . $path;
|
|
}
|
|
|
|
return $baseurl;
|
|
}
|
|
|
|
function intervalFormat($input) {
|
|
// Menangkap jumlah dan satuan
|
|
preg_match('/(\d+)([DHM])/', $input, $matches);
|
|
|
|
if (count($matches) !== 3) {
|
|
return "Format tidak valid";
|
|
}
|
|
|
|
$amount = intval($matches[1]);
|
|
$unit = strtolower($matches[2]); // Mengubah satuan menjadi huruf kecil
|
|
|
|
// Inisialisasi waktu
|
|
$days = 0;
|
|
$hours = 0;
|
|
$minutes = 0;
|
|
$seconds = 0;
|
|
|
|
switch ($unit) {
|
|
case 'd':
|
|
$days = $amount;
|
|
break;
|
|
case 'h':
|
|
$hours = $amount;
|
|
break;
|
|
case 'm':
|
|
$minutes = $amount;
|
|
break;
|
|
}
|
|
|
|
// Format output
|
|
if ($days > 0) {
|
|
return sprintf("%d%s%02d:%02d:%02d", $days, $unit, $hours, $minutes, $seconds);
|
|
} else {
|
|
return sprintf("%02d:%02d:%02d", $hours, $minutes, $seconds);
|
|
}
|
|
}
|
|
|
|
?>
|