PHP တွင် Diemb_sunsetSet () function ကို အသုံးပြု. နေဝင်ချိန်အချိန်ကိုတွက်ချက်သောအခါ developer များမကြာခဏထင်ပေါ်ကျော်ကြားမှုပြ problems နာများကြုံတွေ့ရသည်။ မှားယွင်းသောသို့မဟုတ်လျစ်လျူရှုခံရသည့်အချိန်ဇုန်ပြင်ဆင်ခြင်းသည်တွက်ချက်မှုရလဒ်များကိုတစ်နာရီမျှမတူပါ။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှု၏အချိန်ကာလဇုန်နိယာမကိုတွက်ချက်ရန်နှင့်ထောင်ချောက်များကိုရှောင်ရှားရန်မည်သို့မှန်ကန်စွာသတ်မှတ်ရမည်ကိုပြရန်သင့်အားပြသပါလိမ့်မည်။
Date_SunsetSet () သည် PHP တွင်ပါ 0 င်သော function ကိုသတ်မှတ်ထားသောနေ့, လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်များနှင့်သက်ဆိုင်သောနေဝင်ချိန်အချိန်ကိုပြန်လည်ရောက်ရှိစေသည် အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
date_sunset(
int $timestamp,
int $format = SUNFUNCS_RET_STRING,
float $latitude = ini_get("date.default_latitude"),
float $longitude = ini_get("date.default_longitude"),
float $zenith = ini_get("date.sunset_zenith"),
float $gmt_offset = 0
): string|int|float|false
အရေးအကြီးဆုံးသော parameter သည်နောက်ဆုံးဖြစ်သော $ GMT_Offset , GMT နှင့်ကွဲပြားခြားနားသောအချိန် ဖြစ်သည်။ ဤအချိန်ဇုန်သတ်မှတ်ရန်တစ်ခုတည်းသောနည်းလမ်းဖြစ်သည်။
PHP's Date_Default_Timezonezetime_Timezonezeterzet () function ကို အသုံးပြု. လူအများအပြားကို အသုံးပြု. အချိန်ဇုန်သတ်မှတ်ရန်အသုံးပြုသည်။
date_default_timezone_set('Asia/Shanghai');
ဤချိန်ညှိချက်သည် ရက်စွဲ () နှင့် strtotime ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုအကျိုးသက်ရောက်နိုင်သော်လည်း၎င်းသည် Date_Sunset ၏ရလဒ်ကို အကျိုးသက်ရောက်လိမ့်မည်မဟုတ်ပါ ။ ဒါကအလွယ်ကူဆုံးအရာ developer လျစ်လျူရှု။
// အမှားသရုပ်ပြ
date_default_timezone_set('Asia/Shanghai');
echo date_sunset(time(), SUNFUNCS_RET_STRING, 31.2304, 121.4737); // ရလဒ်ဖြစ်နိုင်သည် GMT အချိန်
အထက်ပါကုဒ်သည်ရှန်ဟိုင်းအချိန်ဇုန်ကိုသတ်မှတ်သော်လည်းပြန်လည်ရောက်ရှိနေသောနေဝင်ချိန်အချိန်သည် GMT အချိန်ဖြစ်ဆဲဖြစ်သည်။
Date_sunset လုပ်ရန် () ဒေသအလိုက်နှင့်ကိုက်ညီသောရလဒ်ကိုပြန်ပို့ပါ။ GMT Offset Value ကိုနာရီအတွင်းလက်ဖြင့်ပြုလုပ်ရမည် ။ ဥပမာအားဖြင့်, တရုတ်စံချိန်စံညွှန်းသည် GMT + 8 ဖြစ်ပါက $ gmt_offset = 8.0 ကို သတ်မှတ်ရန်လိုအပ်သည်။
date_default_timezone_set('Asia/Shanghai'); // ဒီခြေလှမ်းကမထိခိုက်ဘူး date_sunset,သို့သော်၎င်းသည်၎င်းကိုစည်းလုံးညီညွတ်စွာထားရန်အကြံပြုထားပါသည်
// ရှန်ဟိုင်း:လတီ္တတွဒ် 31.2304, လောင်ဂျီတွဒ် 121.4737
$sunset = date_sunset(time(), SUNFUNCS_RET_STRING, 31.2304, 121.4737, 90.0, 8.0);
echo "ရှန်ဟိုင်း的日落အချိန်为:$sunset";
ရလဒ်ဥပမာ:
ရှန်ဟိုင်း的日落အချိန်为:18:45
ပြန်လာသည်ဒေသအလိုက် GMT မရှိတော့ပါ။
အကယ်. သင်သည် code ကိုအလိုအလျောက်ဖြန့်ကျက်ထားသောဆာဗာ၏အချိန်ဇုန်ကိုအလိုအလျောက်လိုက်လျောညီထွေဖြစ်အောင်လုပ်ချင်ပါကသင်လုပ်နိုင်သည်။
$dt = new DateTime('now', new DateTimeZone(date_default_timezone_get()));
$gmtOffset = $dt->getOffset() / 3600; // စက္ကန့်အတွင်းနာရီဖွင့်ပါ
$sunset = date_sunset(time(), SUNFUNCS_RET_STRING, 31.2304, 121.4737, 90.0, $gmtOffset);
echo "当前时区下的日落အချိန်为:$sunset";
ဤနည်းအားဖြင့် Code ကိုမတူညီသောနိုင်ငံများရှိဆာဗာများ၌နေရာချထားသည့်တိုင်မှန်ကန်သောနေဝင်ချိန်အချိန်ကိုအလိုအလျောက်တွက်ချက်နိုင်သည်။
အသုံးပြုသူမြို့၏နေဝင်ချိန်အချိန်ကိုပြန်ပို့ရန် interface ကိုပေးလိုပြီးပြန်လည်ရရှိခြင်းသည်အောက်ပါအတိုင်းဖြစ်သည်။
{
"city": "ရှန်ဟိုင်း",
"sunset": "18:45"
}
အောက်ပါ interface ကိုယုတ္တိဗေဒကိုတည်ဆောက်နိုင်သည် (လိပ်စာသည် M66.net )
// နမူနာ interface လိပ်စာ:https://api.m66.net/sunset.php?lat=31.2304&lng=121.4737
$lat = $_GET['lat'] ?? 31.2304;
$lng = $_GET['lng'] ?? 121.4737;
$dt = new DateTime('now', new DateTimeZone(date_default_timezone_get()));
$gmtOffset = $dt->getOffset() / 3600;
$sunset = date_sunset(time(), SUNFUNCS_RET_STRING, $lat, $lng, 90.0, $gmtOffset);
echo json_encode([
"city" => "ရှန်ဟိုင်း",
"sunset" => $sunset
]);
Date_sunset () သည် PHP ၏ပုံမှန်အချိန်ဇုန်ကိုအလိုအလျောက်မသုံးပါ။
$ GMT_OFT_Offset Parameter သည်နာရီအတွင်းတွင်လက်ဖြင့်ပြုလုပ်ရမည်။
Code အလိုက်အလိုက်အံမှုတိုးမြှင့်ရေးအတွက်လက်ရှိ offset တန်ဖိုးကိုပုံမှန်တွက်ချက်ရန်အကြံပြုသည်။
စီးပွားရေးယုတ္တိဗေဒအမှားများကိုရှောင်ရှားရန် GMT ပြောင်းလဲခြင်းကိုဒေသတွင်းပြောင်းခြင်းကိုဂရုပြုပါ။
နေ၏အနေအထားနှင့်သက်ဆိုင်သောလုပ်ဆောင်မှုများသည် စီးပွားရေးဆိုင်ရာတိကျမှန်ကန်မှုကိုမှန်ကန်စွာညီမျှသည် ။ သင်၏ system logic ကိုတစ်နာရီကြာမနေပါနှင့်။