လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Data format ူဖားနှင့်အပြောင်းအလဲနဲ့နည်းလမ်းကို timezone_location_get function ကိုပြန်ပို့သည်

Data format ူဖားနှင့်အပြောင်းအလဲနဲ့နည်းလမ်းကို timezone_location_get function ကိုပြန်ပို့သည်

gitbox 2025-05-28

PHP တွင် timezone_location_get () သည်သတ်မှတ်ထားသောအချိန်ဇုန်အတွက်ပထဝီအနေအထားအရအချက်အလက်များကိုရယူရန်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ အချိန်ဇုန်ဒေတာများအပေါ် အခြေခံ. Geolocation လိုအပ်သည့်ပထဝီဆိုင်ရာအချက်အလက်များအပေါ် အခြေခံ. သို့မဟုတ်အချိန်ဇုန်နှင့်သက်ဆိုင်သောသတင်းအချက်အလက်များကိုပြသသည့်နေရာများတွင်၎င်းကိုမကြာခဏအသုံးပြုလေ့ရှိသည်။ ဤဆောင်းပါးသည် TimeZONE_LOCE_GEGED_GEget () function ကို timezone_location_get () function ကိုအသေးစိတ်လေ့လာပြီးဤအချက်အလက်များကိုထိရောက်စွာမည်သို့လုပ်ဆောင်ရမည်ကိုလေ့လာလိမ့်မည်။


1 ။ timezone_location_get () function ကိုမိတ်ဆက်ပါ

TimeZone_Location_Get () function သည် datetimezone အရာဝတ်ထုကို parameter တစ်ခုအဖြစ်လက်ခံပြီးအချိန်ဇုန်နှင့်သက်ဆိုင်သောပထဝီဆိုင်ရာတည်နေရာသတင်းအချက်အလက်ခင်းကျင်းမှုကိုပြန်လည်ပေးအပ်သည်။ တိကျသောအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 $timezone = new DateTimeZone('Asia/Shanghai');
$location = timezone_location_get($timezone);
print_r($location);

2 ။ ဒေတာ format နဲ့အသေးစိတ်ရှင်းပြချက်ကိုပြန်ပို့ပါ

အဆိုပါ function ကိုဆင်တူဖွဲ့စည်းပုံနှင့်အတူ associative ခင်းကျင်းပြန်:

 Array
(
    [country_code] => CN
    [latitude] => 31.22222
    [longitude] => 121.45806
    [comments] => Shanghai
)
  • Country_code : နိုင်ငံ ISO 3166-1 alpha-2 အက်ခရာကုဒ်နံပါတ်။

  • လတ်တီတွဒ် - ဤအချိန်ဇုန်၏ဗဟိုအချက်အချာကျသောလတ်တီတွဒ်, လတ်တီတွဒ်နံပါတ်, ယူနစ်။

  • လောင်ဂျီတွဒ် - လောင်ဂျီတွဒ်, floating point နံပါတ်, ဤအချိန်ဇုန်၏ဗဟိုညွှန်ပြပြည်နယ်အတွက်ဒီဂရီအတွက်ယူနစ်။

  • မှတ်ချက်များ - အချိန်ဇုန်၏အကျဉ်းချုပ်ဖော်ပြချက်, များသောအားဖြင့်အဓိကမြို့အမည်။


3 ။ ဤအချက်အလက်များကိုထိရောက်စွာမည်သို့လုပ်ဆောင်ရမည်နည်း

လက်တွေ့ကျသော application များအရဤအချက်အလက်များကိုထပ်မံပြုပြင်ရန်လိုအပ်သည်။

  • သွဒီနိတ်ပုံစံ (ဒီဂရီနှင့်တစ်မိနစ်နှင့်ဒုတိယအကြားပြောင်းလဲခြင်း) ပြောင်းပါ။

  • လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်အပေါ်အခြေခံပြီးအကွာအဝေးတွက်ချက်

  • နိုင်ငံကုဒ်နံပါတ်ပေါ်တွင်အခြေခံသည့်နိုင်ငံအမည်သို့မဟုတ်အမှတ်တံဆိပ်ကိုရှာဖွေပါ

1 ။ ညှိနှိုင်းပုံစံပြောင်းလဲခြင်း၏ဥပမာ

 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";

2 ။ အချက်နှစ်ချက်အကြားအကွာအဝေးတွက်ချက်မှု (Havushin formula)

 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} ကီလိုမမီတာ";

3 ။ တိုင်းပြည်ကုဒ်အပေါ်အခြေခံပြီးအမျိုးသားသတင်းအချက်အလက်ရယူပါ

Country_code ကို ရိုးရှင်းသောခင်းကျင်းသို့မဟုတ်တတိယပါတီစာကြည့်တိုက်မှတစ်ဆင့်နိုင်ငံအလိုက်အမည်အပြည့်အစုံသို့ပြောင်းလဲနိုင်သည်။

 $countryNames = [
    'CN' => 'ကေြှထည်',
    'US' => 'ယူအက်စ်အေ',
    'JP' => 'ဂျပန်',
    // လိုအပ်ချက်များနှင့်အညီတိုးချဲ့နိုင်ပါသည်
];

$country = $countryNames[$location['country_code']] ?? 'အမည်မသိနိုင်ငံ';
echo "အချိန်ဇုန်နိုင်ငံ:$country";

4 ။ အကျဉ်းချုပ်

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";