Skip to content

Instantly share code, notes, and snippets.

@ammaridris
Last active December 31, 2021 11:13
Show Gist options
  • Save ammaridris/887ad2a84b79906e4b5f to your computer and use it in GitHub Desktop.
Save ammaridris/887ad2a84b79906e4b5f to your computer and use it in GitHub Desktop.
Paparan Maklumat Tarikh Lahir, Umur, Negeri & Jantina Daripada Kad Pengenalan Menggunakan PHP
<?php
$no_ic = 871118077020; //CONTOH NO IC 871118077020
$tmp_hari = substr($no_ic,4,2);
$tmp_bulan = substr($no_ic,2,2);
$tmp_tahun = substr($no_ic,0,2);
$tmp_negeri = substr($no_ic,6,2);
$tmp_jantina = substr($no_ic,11,1);
//TARIKH LAHIR//////////////////////////////////////
if($tmp_tahun >= 00 && $tmp_tahun <= 30) {
$tmp_tahun = 2000+$tmp_tahun;
}
if($tmp_tahun >= 31 && $tmp_tahun <= 99) {
$tmp_tahun = 1900+$tmp_tahun;
}
$tarikh_lahir = $tmp_hari."/".$tmp_bulan."/".$tmp_tahun;
//UMUR//////////////////////////////////////
$tmp_tarikh_lahir = $tmp_tahun."-".$tmp_bulan."-".$tmp_hari;;
$umur = date_create($tmp_tarikh_lahir)->diff(date_create('today'))->y;
//NEGERI//////////////////////////////////////
//Sumber Kod Negeri : http://www.jpn.gov.my/informasi/kod-negeri/
//Untuk Kod Negara : http://www.jpn.gov.my/en/informasi/kod-negara/
$kod_negeri = array(
'01'=>"Johor",
'21'=>"Johor",
'22'=>"Johor",
'23'=>"Johor",
'24'=>"Johor",
'02'=>"Kedah",
'25'=>"Kedah",
'26'=>"Kedah",
'27'=>"Kedah",
'03'=>"Kelantan",
'28'=>"Kelantan",
'29'=>"Kelantan",
'04'=>"Melaka",
'30'=>"Melaka",
'05'=>"Negeri Sembilan",
'31'=>"Negeri Sembilan",
'59'=>"Negeri Sembilan",
'06'=>"Pahang",
'32'=>"Pahang",
'33'=>"Pahang",
'07'=>"Pulau Pinang",
'34'=>"Pulau Pinang",
'35'=>"Pulau Pinang",
'08'=>"Perak",
'36'=>"Perak",
'37'=>"Perak",
'38'=>"Perak",
'39'=>"Perak",
'09'=>"Perlis",
'40'=>"Perlis",
'10'=>"Selangor",
'41'=>"Selangor",
'42'=>"Selangor",
'43'=>"Selangor",
'44'=>"Selangor",
'11'=>"Terengganu",
'45'=>"Terengganu",
'46'=>"Terengganu",
'12'=>"Sabah",
'47'=>"Sabah",
'48'=>"Sabah",
'49'=>"Sabah",
'13'=>"Sarawak",
'50'=>"Sarawak",
'51'=>"Sarawak",
'52'=>"Sarawak",
'53'=>"Sarawak",
'14'=>"Wilayah Persekutuan Kuala Lumpur",
'54'=>"Wilayah Persekutuan Kuala Lumpur",
'55'=>"Wilayah Persekutuan Kuala Lumpur",
'56'=>"Wilayah Persekutuan Kuala Lumpur",
'57'=>"Wilayah Persekutuan Kuala Lumpur",
'15'=>"Wilayah Persekutuan Labuan",
'58'=>"Wilayah Persekutuan Labuan",
'16'=>"Wilayah Persekutuan Putrajaya",
'82'=>"Lain-Lain"
);
$negeri_lahir=$kod_negeri[$tmp_negeri];
//JANTINA//////////////////////////////////////
if($tmp_jantina % 2 == 0) {
$jantina = 'Perempuan';
}
else {
$jantina = 'Lelaki';
}
//PAPARAN OUTPUT//////////////////////////////////////
echo "Tarikh Lahir: ".$tarikh_lahir;
echo "<br />Umur: ".$umur;
echo "<br />Negeri: ".$negeri_lahir;
echo "<br />Jantina: ".$jantina;
?>
@suhaimim
Copy link

Cuba anda test guna no IC yang ini
150308-10-1234
Tuan punya diri lahir pada tahun 1915. Oleh itu, umur beliau pada tahun 2020 ialah 105 tahun.
Tapi, formula di atas akan jadi tahun 2015 dan beliau menjadi seusia 5 tahun.

@ammaridris
Copy link
Author

ammaridris commented Dec 31, 2021

Kena ubah semula coding tu, kalau tuan ada coding yg betul boleh share di sini.

Tapi logiknya, ic mula 15 ni yang lahir 2015, tak pasti lah kalau yg lahir 1915 ic baru dia mcm mana (kalau ada lah)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment