PHP တွင် timezone_location_get () သည်သတ်မှတ်ထားသောအချိန်ဇုန်အတွက်ပထဝီအနေအထားအရအချက်အလက်များကိုရယူရန်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ အချိန်ဇုန်ဒေတာများအပေါ် အခြေခံ. Geolocation လိုအပ်သည့်ပထဝီဆိုင်ရာအချက်အလက်များအပေါ် အခြေခံ. သို့မဟုတ်အချိန်ဇုန်နှင့်သက်ဆိုင်သောသတင်းအချက်အလက်များကိုပြသသည့်နေရာများတွင်၎င်းကိုမကြာခဏအသုံးပြုလေ့ရှိသည်။ ဤဆောင်းပါးသည် TimeZONE_LOCE_GEGED_GEget () function ကို timezone_location_get () function ကိုအသေးစိတ်လေ့လာပြီးဤအချက်အလက်များကိုထိရောက်စွာမည်သို့လုပ်ဆောင်ရမည်ကိုလေ့လာလိမ့်မည်။
TimeZone_Location_Get () function သည် datetimezone အရာဝတ်ထုကို parameter တစ်ခုအဖြစ်လက်ခံပြီးအချိန်ဇုန်နှင့်သက်ဆိုင်သောပထဝီဆိုင်ရာတည်နေရာသတင်းအချက်အလက်ခင်းကျင်းမှုကိုပြန်လည်ပေးအပ်သည်။ တိကျသောအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
$timezone = new DateTimeZone('Asia/Shanghai');
$location = timezone_location_get($timezone);
print_r($location);
အဆိုပါ function ကိုဆင်တူဖွဲ့စည်းပုံနှင့်အတူ associative ခင်းကျင်းပြန်:
Array
(
[country_code] => CN
[latitude] => 31.22222
[longitude] => 121.45806
[comments] => Shanghai
)
Country_code : နိုင်ငံ ISO 3166-1 alpha-2 အက်ခရာကုဒ်နံပါတ်။
လတ်တီတွဒ် - ဤအချိန်ဇုန်၏ဗဟိုအချက်အချာကျသောလတ်တီတွဒ်, လတ်တီတွဒ်နံပါတ်, ယူနစ်။
လောင်ဂျီတွဒ် - လောင်ဂျီတွဒ်, floating point နံပါတ်, ဤအချိန်ဇုန်၏ဗဟိုညွှန်ပြပြည်နယ်အတွက်ဒီဂရီအတွက်ယူနစ်။
မှတ်ချက်များ - အချိန်ဇုန်၏အကျဉ်းချုပ်ဖော်ပြချက်, များသောအားဖြင့်အဓိကမြို့အမည်။
လက်တွေ့ကျသော application များအရဤအချက်အလက်များကိုထပ်မံပြုပြင်ရန်လိုအပ်သည်။
သွဒီနိတ်ပုံစံ (ဒီဂရီနှင့်တစ်မိနစ်နှင့်ဒုတိယအကြားပြောင်းလဲခြင်း) ပြောင်းပါ။
လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်အပေါ်အခြေခံပြီးအကွာအဝေးတွက်ချက်
နိုင်ငံကုဒ်နံပါတ်ပေါ်တွင်အခြေခံသည့်နိုင်ငံအမည်သို့မဟုတ်အမှတ်တံဆိပ်ကိုရှာဖွေပါ
function decimalToDMS($decimal) {
$degrees = floor($decimal);
$minutes = floor(($decimal - $degrees) * 60);
$seconds = round((($decimal - $degrees) * 60 - $minutes) * 60, 2);
return "{$degrees}°{$minutes}'{$seconds}\"";
}
$latDMS = decimalToDMS($location['latitude']);
$lngDMS = decimalToDMS($location['longitude']);
echo "Latitude: $latDMS, Longitude: $lngDMS";
function haversineDistance($lat1, $lng1, $lat2, $lng2) {
$earthRadius = 6371; // ကမ္ဘာ့အချင်းဝက်,ယူနစ်ကီလိုမီတာဖြစ်ပါတယ်
$dLat = deg2rad($lat2 - $lat1);
$dLng = deg2rad($lng2 - $lng1);
$a = sin($dLat / 2) * sin($dLat / 2) +
cos(deg2rad($lat1)) * cos(deg2rad($lat2)) *
sin($dLng / 2) * sin($dLng / 2);
$c = 2 * atan2(sqrt($a), sqrt(1 - $a));
return $earthRadius * $c;
}
// နမူနာ:ရှန်ဟိုင်းနှင့်ပေကျင်းအကြားအကွာအဝေးကိုတွက်ချက်ပါ
$beijing = ['latitude' => 39.9042, 'longitude' => 116.4074];
$distance = haversineDistance($location['latitude'], $location['longitude'], $beijing['latitude'], $beijing['longitude']);
echo "ရှန်ဟိုင်းနှင့်ဘေဂျင်းတို့အကြားအကွာအဝေးမှာဖြစ်သည် {$distance} ကီလိုမမီတာ";
Country_code ကို ရိုးရှင်းသောခင်းကျင်းသို့မဟုတ်တတိယပါတီစာကြည့်တိုက်မှတစ်ဆင့်နိုင်ငံအလိုက်အမည်အပြည့်အစုံသို့ပြောင်းလဲနိုင်သည်။
$countryNames = [
'CN' => 'ကေြှထည်',
'US' => 'ယူအက်စ်အေ',
'JP' => 'ဂျပန်',
// လိုအပ်ချက်များနှင့်အညီတိုးချဲ့နိုင်ပါသည်
];
$country = $countryNames[$location['country_code']] ?? 'အမည်မသိနိုင်ငံ';
echo "အချိန်ဇုန်နိုင်ငံ:$country";
TimeZone_location_Get () function မှပေးသောပထဝီဝင်အချက်အလက်များသည်ရိုးရှင်းပြီးအလိုလိုသိသည်။ ရိုးရှင်းသောညှိနှိုင်းမှုပြောင်းလဲခြင်းနှင့်ပထဝီဝင်ဆိုင်ရာတွက်ချက်မှုများကိုပေါင်းစပ်ပြီး၎င်းသည်ပထဝီဝင်သတင်းအချက်အလက်မျက်နှာပြင်အမျိုးမျိုးနှင့်အပြောင်းအလဲများအတွက်လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးနိုင်သည်။
<?php
$timezone = new DateTimeZone('Asia/Shanghai');
$location = timezone_location_get($timezone);
function decimalToDMS($decimal) {
$degrees = floor($decimal);
$minutes = floor(($decimal - $degrees) * 60);
$seconds = round((($decimal - $degrees) * 60 - $minutes) * 60, 2);
return "{$degrees}°{$minutes}'{$seconds}\"";
}
$latDMS = decimalToDMS($location['latitude']);
$lngDMS = decimalToDMS($location['longitude']);
echo "အချိန်ဇုန်ပထဝီဆိုင်ရာသတင်းအချက်အလက်:\n";
echo "နိုင်ငံကုဒ်နံပါတ်: " . $location['country_code'] . "\n";
echo "လတီ္တတွဒ်: $latDMS\n";
echo "လောင်ဂျီတွဒ်: $lngDMS\n";
echo "ပေြာဆို: " . $location['comments'] . "\n";
// နမူနာ:အခြားနေရာတစ်ခုကနေအကွာအဝေးတွက်ချက်
function haversineDistance($lat1, $lng1, $lat2, $lng2) {
$earthRadius = 6371;
$dLat = deg2rad($lat2 - $lat1);
$dLng = deg2rad($lng2 - $lng1);
$a = sin($dLat/2) * sin($dLat/2) +
cos(deg2rad($lat1)) * cos(deg2rad($lat2)) *
sin($dLng/2) * sin($dLng/2);
$c = 2 * atan2(sqrt($a), sqrt(1-$a));
return $earthRadius * $c;
}
$beijing = ['latitude' => 39.9042, 'longitude' => 116.4074];
$distance = haversineDistance($location['latitude'], $location['longitude'], $beijing['latitude'], $beijing['longitude']);
echo "ရှန်ဟိုင်းနှင့်ဘေဂျင်းတို့အကြားအကွာအဝေးမှာဖြစ်သည် {$distance} ကီလိုမမီတာ\n";