Convert String ke Integer
Integer adalah sebuah tipe data berupa bilangan bulat. Dalam PHP tipe data dari sebuah variabel tidak perlu didefinisikan, tapi tipe data sebuah variabel PHP akan mengikuti nilai dari variabel tersebut. Kenapa? karena variabel di PHP bersifat dinamis. Nah sebuah variabel bernilai string pun bisa saja isinya asalah sebuah data integer atau gabungan dengan data lainnya, seperti "data123", "123", dll.
Konversi tipe data string ke integer akan diperlukan pada saat script yang kita buat itu memerlukan proses operasi matematika baik dasar maupun lanjutan. Contoh data yang tidak bisa menghasilkan nilai adalah 005 + 7. Kalo diambil secara logis itu pasti akan menghasilkan nilai karena 005 sama artinya dengan 5, namun terkadang 005 dan 5 dianggap beda, nah untuk antisipasi hal inilah diperlukan yang namanya konversi ke integer agar menjadi sebuah angka bilangan.
Konversi String ke Integer
Formula untuk konversi string ke integer adalah
intval($var)
Catatan
1. akan menghasilkan nilai integer jika $var merupakan sebuah angka atau nilai atau string yang dimulai dengan angka.
2. Jika proses konversi gagal akan menghasilkan nilai 0 (nol).
3. Jika $var merupakan numerik akan menghasilkan nilai numerik yang sama.
4. Jika $var merupakan nilai desimal, maka akan dibulatkan menjadi angka bulat (integer).
5. Jika $var merupakan array, akan menghasilkan 0 jika array kosong atau 1 jika array mempunyai member.
6. Maksimum angka yang mampu dijangkau tergantung sistem yang digunakan server (32bit atau 64bit berbeda angka maksimalnya).
Yuk kita lihat contohnya..
<?php
$x = '005';
$y = 18;
$z = 3.14;
$a = array();
$b = array('buah', 'sayur');
$c = 'ar31';
$d = '98hcn';
echo intval($x); // hasilnya 5
echo intval($y); // hasilnya 18
echo intval($z); // hasilnya 3
echo intval(9); // hasilnya 9
echo intval($a); // hasilnya 0
echo intval($b); // hasilnya 1
echo intval($c); // hasilnya 0
echo intval($d); // hasilnya 98
?>
Oke selain cara di atas kita bisa juga menggunakan cara berikut agar input dipastikan diparse jadi angka
<?php
$x = '005';
$y = 18;
$z = 3.14;
$a = array();
$b = array('buah', 'sayur');
$c = 'ar31';
$d = '98hcn';
echo (int)$x; // hasilnya 5
echo (int)$y; // hasilnya 18
echo (int)$z; // hasilnya 3
echo (int)$a; // hasilnya 0
echo (int)$b; // hasilnya 1
echo (int)$c; // hasilnya 0
echo (int)$d; // hasilnya 98
?>
Konversi String ke Desimal (Float)
Untuk update kali ini saya akan mencoba berbagi kepada sahabat AJN semua yakni menyambung bahasan pada judul, yakni ditambahi dengan konversi string ke tipe data desimal (angka yang ada komanya). Oke tidak perlu lagi pake lama, akan langsung saja saya bahas disini.
Formula yang digunakan untuk konversi string ke decimal atau float menggunakan formaula berikut
floatval($var)
Untuk catatannya sama saja dengan yang integer. Yuk langsung saja kita coba
<?php
$x = '0.025';
$y = 18.77;
$z = 3.14;
$a = array();
$b = array('buah', 'sayur');
$c = 'ar31.7';
$d = '19.98hcn';
echo floatval($x); // hasilnya 0.025
echo floatval($y); // hasilnya 18.77
echo floatval($z); // hasilnya 3.14
echo floatval(9.5); // hasilnya 9.5
echo floatval($a); // hasilnya 0
echo floatval($b); // hasilnya 1
echo floatval($c); // hasilnya 0
echo floatval($d); // hasilnya 19.98
?>
Konversi DATE ke Integer
Untuk menjawab salah satu pertanyaan yang masuk di Tutorial PHP AJN ini saya sertakan saja supaya lebih detail dan dapat dibaca oleh pengunjung lainnya yang mudah-mudahan bermanfaat dan mungkin suatu saat nanti ketika butuh bisa kembali berkunjung ke web saya ini
.
Oke langsung saja ke pembahasan. Untuk mengkonversi tanggal (date) ke integer, yang kita perlukan adalah mengubahnya kedalam satuan UNIX TIMESTAMP, yakni jumlah detik yang dimulai dari tanggal 1 Januari 1970 jam 00:00:00 sampai detik saat ini. Untuk contohnya bisa kita lihat di bawah ini
<?php
$tgl = "2014-02-09";
$tgl_now = date("Y-m-d");
// disini yang kita inginkan adalah menghitung berapa hari dari tanggal 9 Feb 2014 sampai hari ini (18 Feb 2014)
$int_tgl = strtotime($tgl);
$int_tgl2 = strtotime($tgl_now);
$jarak = $int_tgl2-$int_tgl;
echo "$tgl_now - $tgl";
echo "= $int_tgl2 - $int_tgl";
echo '= ',$jarak,' detik';
echo '= ',$jarak/60,' menit';
echo '= ',$jarak/3600,' jam';
echo '= ',($jarak/3600)/24,' hari';
Dan berikut adalah hasil outputnya di browser
= 1392656400 - 1391878800
= 777600 detik
= 12960 menit
= 216 jam
= 9 hari
Nahh... sekarang akan saya share sebuah trik. Di facebook maupun twitter, ada waktu 2 jam yang lalu atau 3 menit yang lalu atau mungkin dalam kasus lain ada 3 hari lagi. Nah untuk pembuatan rentang waktu durasi ini kita menggunakan script seperti di atas. Supaya interaktif disajikan dengan olah logika lagi. Yuk kita lihat scriptnya di bawah ini
<?php
function durasi($datefrom){
$timestamp = is_numeric($datefrom) ? $datefrom : strtotime($datefrom);
$current_time = time();
$diff = $current_time - $timestamp;
$intervals = array('year'=>31556926, 'month'=>2629744, 'week'=>604800, 'day'=>86400, 'hour'=>3600, 'minute'=>60);
if($diff<60){
$rntval = $diff . ' detik yang lalu';
}
if($diff>=60 && $diff<$intervals['hour']){
$diff = floor($diff/$intervals['minute']);
$rntval = $diff.' menit yang lalu';
}
if($diff>=$intervals['hour'] && $diff<$intervals['day']){
$diff = floor($diff/$intervals['hour']);
$rntval = $diff.' jam yang lalu';
}
if($diff>=$intervals['day'] && $diff<$intervals['week']){
$diff = floor($diff/$intervals['day']);
$rntval = $diff == 1 ? 'kemarin' : $diff.' hari yang lalu';
}
if($diff>=$intervals['week'] && $diff<$intervals['month']){
$diff = floor($diff/$intervals['week']);
$rntval = $diff.' minggu yang lalu';
}
if($diff>=$intervals['month'] && $diff<$intervals['year']){
$diff = floor($diff/$intervals['month']);
$rntval = $diff.' bulan yang lalu';
}
if($diff>=$intervals['year']){
$diff = floor($diff/$intervals['year']);
$rntval = $diff.' tahun yang lalu';
}
return $rntval;
}
// contoh penggunaan
$tgl1 = '2014-02-11';
$tgl2 = '2014-04-18 19:25:33';
echo durasi($tgl1);
echo durasi($tgl2);
?>
Dan berikut adalah hasil outputnya di browser
3 jam yang lalu