လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> SERVER PHP default settings ကိုသက်ရောက်သည့်အခါသက်သောင့်သက်သာရှိသောဝှက်ထားသောလျှို့ဝှက်ပြ issues နာများ

SERVER PHP default settings ကိုသက်ရောက်သည့်အခါသက်သောင့်သက်သာရှိသောဝှက်ထားသောလျှို့ဝှက်ပြ issues နာများ

M66 2025-05-31

PHP ၏ Date_SunsetsunSet () function ကိုအသုံးပြုသောနေ့, လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်နှင့်အခြား parametersters အပေါ် အခြေခံ. နေဝင်ချိန်အချိန်ကိုတွက်ချက်ရန်အသုံးပြုသည်။ သို့သော်ဤလုပ်ဆောင်မှုကိုအသုံးပြုသောအခါ developer များစွာသည်ရလဒ်အနေဖြင့်ပြန်လည်ထူထောင်ခြင်းမတိကျသောရလဒ်များ, ဤပြ problem နာသည် function ကိုယ်နှိုက်တွင် bug တစ်ခုဖြစ်ပုံရသည်,

1 ။ Date_Sunsetsunset () အလုပ်လုပ်သည်။

Date_Sunset 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

ဒီ function က timestamp (များသောအားဖြင့် strtotime () ) နှင့်ပထဝီဝင်သုံး parameters တွေကိုနှင့်ပထဝီဝင်သုံး parameters တွေကိုစီးရီးတစ်စီးရီးကိုပြန်ယူပြီး, အဓိက parameter: $ gmt_Offset အတွက်အဓိက parameter: $ gmt_offset , က GMT offset ဖြစ်ပါတယ်။

အကယ်. သင်သည် $ gmt_Offset ကို မပေးလျှင် PHP သည်လက်ရှိအချိန်ဇုန်ပြင်ဆင်မှု (I.E. DATIMEZONZON ) ကို အသုံးပြု. PHP သည် offset ကိုတွက်ချက်ရန်ကြိုးစားလိမ့်မည်။ အကယ်. အချိန်ဇုန်ကိုမမှန်မကန်သို့မဟုတ်မသတ်မှတ်ထားပါကတွက်ချက်မှုရလဒ်များသည်အမှန်တကယ်တန်ဖိုးနှင့်ဆက်စပ်လိမ့်မည်။

2 ။ ပုံမှန်အချိန်ဇုန်၏အကျိုးသက်ရောက်မှုရလဒ်များအပေါ်သက်ရောက်မှု

လိုက်ဖက်တဲ့အကြောင်းပြချက်တွေကြောင့်ဆာဗာများစွာကို PHP ရဲ့ပုံမှန်အချိန်ဇုန်မှာသတ်မှတ်ထားမှာမဟုတ်ဘူး, ဒါမှမဟုတ် UTC ကိုသတ်မှတ်ထားနိုင်တယ်။ အဓိပ်ပါယျမှာ:

  • နေဝင်ချိန်အချိန်ကို UTC အချိန်မဟုတ်ဘဲဒေသအလိုက်မဟုတ်ပါ။

  • အကယ်. သင်သည်ဤအချိန်ကို string တစ်ခုအနေဖြင့်တိုက်ရိုက်ထုတ်ယူပါကသို့မဟုတ် format လုပ်ပါကသင်၏ in ရိယာတွင်အစစ်အမှန်နေဝင်ချိန်နှင့်မကိုက်ညီပါလိမ့်မည်။

ဥပမာအားဖြင့်:

 echo date_sunset(strtotime('2025-04-26'), SUNFUNCS_RET_STRING, 31.2304, 121.4737); // ရှန်ဟိုင်းကိုသွဒီနိတ်

Default Time Zone တွင် "09:54" ဖြစ်နိုင်သည်, သို့သော်သင်မျှော်လင့်ထားသည့်အချိန်မှာ "09:54" ဖြစ်နိုင်သည်။

3 ။ ဒီပြ problem နာကိုဘယ်လိုဖြေရှင်းရမလဲ။

နည်းလမ်း 1: အတိအလင်းအချိန်ဇုန်ကိုရှင်းလင်းစွာသတ်မှတ်

အများဆုံးအကြံပြုသည့်နည်းလမ်းမှာလိုအပ်သောအချိန်ဇုန်ကို script တွင်အတိအလင်းသတ်မှတ်ရန်ဖြစ်သည်။ ဥပမာအားဖြင့်:

 date_default_timezone_set('Asia/Shanghai');

၎င်းသည် DAIR_SUNSETSETS အပါအ 0 င်အချိန်တိုင်းလုပ်ဆောင်မှုများကိုသက်ရောက်သည်။ ရှန်ဟိုင်းသွဒီနိတ်များနှင့် တွဲဖက်. အသုံးပြုသောအခါပြန်လာချိန်သည်အရှေ့ရှစ်ခရိုင်ဖြစ်မည်ဖြစ်သည်။

နည်းလမ်း 2. GMT offset ကိုကိုယ်တိုင်လုပ်ပါ

အကယ်. သင်သည် Global Time Zone ချိန်ညှိချက်များကိုမပြုပြင်လိုပါက $ gmt_Offset Parameter သည်အချိန်ဇယားဆွဲခြင်းဖြင့်အချိန်ဇယားကိုကိုယ်တိုင်ကိုယ်ကျအားကိုယ်တိုင်သတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့်:

 echo date_sunset(strtotime('2025-04-26'), SUNFUNCS_RET_STRING, 31.2304, 121.4737, 90.83, 8);

နောက်ဆုံး parameter 8 သည်အရှေ့ရှစ်ခရိုင် (GMT + 8) ကိုကိုယ်စားပြုသည်။

နည်းလမ်း 3: Php.INI ကို configure လုပ်ပါ

ဆာဗာအဆင့်မှ PHP configuration file (php.ini) ကိုပြုပြင်နိုင်သည်။

 date.timezone = "Asia/Shanghai"

ပြုပြင်မွမ်းမံပြီးနောက်ဝက်ဘ်ဆာဗာ (Nginx သို့မဟုတ် Apache) ကိုပြန်လည်စတင်ရန်သတိရပါ။

4 ။ အကြံပြုထားတဲ့အလေ့အကျင့်

  • လျှောက်လွှာများအတွက်၎င်းသည် အချိန်ကာလကိုအတိအလင်းအတိအလင်းသတ်မှတ်ရန် အလုံခြုံဆုံးဖြစ်သည်။

  • Framework Projects များအတွက် default time zone ကိုမူဘောင်စတင်ခြင်းတွင်သတ်မှတ်ထားကြောင်းသေချာအောင်လုပ်ပါ။

  • နေရာများစွာသို့ချထားသည့်စနစ်များအတွက်အသုံးပြုသူတည်နေရာအရ $ GMT_Offset ကိုချိန်ညှိခြင်းအားစဉ်းစားပါ။

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

Date_Sunsetsetsetsetsetsetsetset () function ၏အပြုအမူသည်လက်ရှိအချိန်ဇုန်ပြင်ဆင်မှုပေါ်တွင်မူတည်သည်။ အကယ်. သင်သည် ရက်စွဲတစ်ခု သို့မဟုတ် $ gmt_offsite ကို မှန်ကန်စွာမသတ်မှတ်ပါကသင်ရရှိသောနေဝင်ချိန်အချိန်သည်လုံးဝတိကျမှန်ကန်မှုရှိနိုင်သည်။ PHP သည်အချိန်ဇုန်များသည်အချိန်ဇုန်များကိုမည်သို့ကိုင်တွယ်သည်ကိုနားလည်ခြင်းနှင့်လိုအပ်သလိုလိုအပ်သလိုသူတို့အားကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ခြင်းသည်ထိုကဲ့သို့သောအချိန် function များကိုအသုံးပြုရန်သော့ချက်ဖြစ်သည်။

ဖွံ့ဖြိုးရေးနှင့်ဖြန့်ကျက်နေစဉ်အတွင်းအချိန်အမှားများကိုရှောင်ရှားရန်သင်၏ PHP configuration ကိုစစ်ဆေးရန်သတိရပါ။