PHP တွင်ကျွန်ုပ်တို့သည်ခိုင်လုံသော Timezone Encifiers အားလုံးကို built-in function timezone_identifiers_list မှတစ်ဆင့်ရနိုင်သည်။ ဤလုပ်ဆောင်ချက်သည်အချိန်ကာလဇုန်အမှတ်အသားများအားလုံးပါ 0 င်သောခင်းကျင်းမှုတစ်ခုရရှိစေသည်။ ထို့နောက်ကျွန်ုပ်တို့သည် Datetimezone အတန်းကိုအချိန်ဇုန်တစ်ခုစီအတွက် UTC offset ကိုတွက်ချက်ရန် Datetimezone အတန်းကိုသုံးနိုင်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှုများမှတစ်ဆင့်အချိန်တိုင်းဇုန်များအားလုံးအတွက် UTC offsets များကိုမည်သို့ရယူရမည်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ခိုင်လုံသောအချိန်ဇုန်ဆိုင်ရာအမှတ်အသားအားလုံးကိုရယူရန်လိုအပ်သည်။ ကျနော်တို့ကအကောင်အထည်ဖော်ရန် timezone_identifiers_list () function ကိုသုံးနိုင်သည်။ ဤလုပ်ဆောင်ချက်သည် parameters များကိုလက်မခံပါ, အချိန်ဇုန်အမှတ်စဉ်တစ်ခုပါ 0 င်သည့်ခင်းကျင်းမှုတစ်ခုစီကိုပြန်လည်ပေးအပ်သည်။ အချိန်ဇုန်အမှတ်အသားရရန်ကုဒ်နံပါတ်ဖြစ်သည်။
<span><span><span class="hljs-variable">$timezones</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_identifiers_list</span></span><span>();
</span></span>
အချိန်ကာလဇုန်စာရင်းကိုရရှိပြီးနောက်ကျွန်ုပ်တို့သည်ဤအချိန်ဇုန်အမှတ်စဉ်များမှတစ်ဆင့်ဆက်သွယ်ရန်လိုအပ်ပြီးအချိန်ဇုန်တစ်ခုစီအတွက် UTC offset ကိုတွက်ချက်ရန်လိုအပ်သည်။ ဤသို့ပြုလုပ်ရန်ကျွန်ုပ်တို့သည်အချိန်ဇုန်အရာဝတ်ထုတစ်ခုကိုဖန်တီးရန်နှင့် offset ရရှိရန် အချိန်ဇုန်အရာဝတ်ထုတစ်ခုကို ဖန်တီးရန် Datetimezone အတန်းကိုသုံးနိုင်သည်။ Getoffs. () နည်းလမ်းသည်စက္ကန့်ပိုင်းအတွင်း offset ကိုပြန်ပို့သည်။
<span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$timezones</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$timezone</span></span><span>) {
</span><span><span class="hljs-comment">// အချိန်ဇုန်အရာဝတ်ထုတစ်ခုဖန်တီးပါ</span></span><span>
</span><span><span class="hljs-variable">$tz</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTimeZone</span></span><span>(</span><span><span class="hljs-variable">$timezone</span></span><span>);
</span><span><span class="hljs-comment">// လက်ရှိအချိန်ကိုရယူပါ UTC စိတ်တေစေ(တခု:စက်ဏန့်)</span></span><span>
</span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-variable">$tz</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getOffset</span></span><span>(</span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">"now"</span></span><span>, </span><span><span class="hljs-variable">$tz</span></span><span>));
</span><span><span class="hljs-comment">// 将စိတ်တေစေ转换为小时和分钟的格式</span></span><span>
</span><span><span class="hljs-variable">$offset_hours</span></span><span> = </span><span><span class="hljs-title function_ invoke__">intdiv</span></span><span>(</span><span><span class="hljs-variable">$offset</span></span><span>, </span><span><span class="hljs-number">3600</span></span><span>); </span><span><span class="hljs-comment">// နာရီတွက်ချက်</span></span><span>
</span><span><span class="hljs-variable">$offset_minutes</span></span><span> = </span><span><span class="hljs-title function_ invoke__">abs</span></span><span>((</span><span><span class="hljs-variable">$offset</span></span><span> % </span><span><span class="hljs-number">3600</span></span><span>) / </span><span><span class="hljs-number">60</span></span><span>); </span><span><span class="hljs-comment">// မိနစ်အရေအတွက်ကိုတွက်ချက်ပါ</span></span><span>
</span><span><span class="hljs-comment">// 输出时区和စိတ်တေစေ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$timezone</span></span><span> . </span><span><span class="hljs-string">' UTC '</span></span><span> . (</span><span><span class="hljs-variable">$offset_hours</span></span><span> >= </span><span><span class="hljs-number">0</span></span><span> ? </span><span><span class="hljs-string">'+'</span></span><span> : </span><span><span class="hljs-string">'-'</span></span><span>) . </span><span><span class="hljs-title function_ invoke__">abs</span></span><span>(</span><span><span class="hljs-variable">$offset_hours</span></span><span>) . </span><span><span class="hljs-string">':'</span></span><span> . </span><span><span class="hljs-title function_ invoke__">str_pad</span></span><span>(</span><span><span class="hljs-variable">$offset_minutes</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'0'</span></span><span>, STR_PAD_LEFT) . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>
အထက်ပါကုဒ်တွင်ကျွန်ုပ်တို့သည် UTC offset ၏စက္ကန့်အရေအတွက်ကို Getoffset မှတဆင့်ရရှိသည်။ Offsets ကိုပိုမိုဖော်ရွေသည်ကိုပြသရန်ကျွန်ုပ်တို့သည်တစ်နာရီနှင့်တစ်မိနစ်ပုံစံများအဖြစ်ပြောင်းလဲရန်လိုအပ်သည်။ အဆိုပါ offset ၏ယူနစ်စက္ကန့်ဖြစ်ပါတယ်။ ၎င်းကို 3600 ဖြင့်ခွဲဝေခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်နာရီအရေအတွက်ကိုရနိုင်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည်ကျန်ရှိနေသောအားဖြင့်ကျွန်ုပ်တို့သည်မိနစ်အရေအတွက်ကိုတွက်ချက်နိုင်သည်။ နောက်ဆုံးအနေဖြင့်ကျွန်ုပ်တို့သည်အချိန်ဇုန်နှင့်သက်ဆိုင်ရာ offset ကိုထုတ်ပေးလိမ့်မည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// အချိန်ဇုန်အမှတ်အသားကိုရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$timezones</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_identifiers_list</span></span><span>();
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$timezones</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$timezone</span></span><span>) {
</span><span><span class="hljs-comment">// အချိန်ဇုန်အရာဝတ်ထုတစ်ခုဖန်တီးပါ</span></span><span>
</span><span><span class="hljs-variable">$tz</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTimeZone</span></span><span>(</span><span><span class="hljs-variable">$timezone</span></span><span>);
</span><span><span class="hljs-comment">// လက်ရှိအချိန်ကိုရယူပါ UTC စိတ်တေစေ(တခု:စက်ဏန့်)</span></span><span>
</span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-variable">$tz</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getOffset</span></span><span>(</span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">"now"</span></span><span>, </span><span><span class="hljs-variable">$tz</span></span><span>));
</span><span><span class="hljs-comment">// 将စိတ်တေစေ转换为小时和分钟的格式</span></span><span>
</span><span><span class="hljs-variable">$offset_hours</span></span><span> = </span><span><span class="hljs-title function_ invoke__">intdiv</span></span><span>(</span><span><span class="hljs-variable">$offset</span></span><span>, </span><span><span class="hljs-number">3600</span></span><span>); </span><span><span class="hljs-comment">// နာရီတွက်ချက်</span></span><span>
</span><span><span class="hljs-variable">$offset_minutes</span></span><span> = </span><span><span class="hljs-title function_ invoke__">abs</span></span><span>((</span><span><span class="hljs-variable">$offset</span></span><span> % </span><span><span class="hljs-number">3600</span></span><span>) / </span><span><span class="hljs-number">60</span></span><span>); </span><span><span class="hljs-comment">// မိနစ်အရေအတွက်ကိုတွက်ချက်ပါ</span></span><span>
</span><span><span class="hljs-comment">// 输出时区和စိတ်တေစေ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$timezone</span></span><span> . </span><span><span class="hljs-string">' UTC '</span></span><span> . (</span><span><span class="hljs-variable">$offset_hours</span></span><span> >= </span><span><span class="hljs-number">0</span></span><span> ? </span><span><span class="hljs-string">'+'</span></span><span> : </span><span><span class="hljs-string">'-'</span></span><span>) . </span><span><span class="hljs-title function_ invoke__">abs</span></span><span>(</span><span><span class="hljs-variable">$offset_hours</span></span><span>) . </span><span><span class="hljs-string">':'</span></span><span> . </span><span><span class="hljs-title function_ invoke__">str_pad</span></span><span>(</span><span><span class="hljs-variable">$offset_minutes</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'0'</span></span><span>, STR_PAD_LEFT) . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
အထက်ပါကုဒ်ကိုသင်ဖွင့်သောအခါအောက်ပါ output ကိုသင်တွေ့လိမ့်မည်။
<span><span>Africa/Abidjan UTC +0:00
Africa/Accra UTC +0:00
Africa/Addis_Ababa UTC +3:00
Africa/Algiers UTC +1:00
Africa/Asmara UTC +3:00
</span><span><span class="hljs-meta prompt_">...</span></span><span>
Asia/Kolkata UTC +5:30
Asia/Kuala_Lumpur UTC +8:00
Asia/Kuwait UTC +3:00
</span><span><span class="hljs-meta prompt_">...</span></span><span>
</span></span>
အတန်းတစ်ခုစီသည်အချိန်ဇုန်တစ်ခုချင်းစီအကြားကွဲပြားခြားနားမှုများကိုကြည့်ရှုရန်အချိန်ဇုန်နှင့်သက်ဆိုင်ရာ UTC offset ကိုပြသသည်။
Daylight Saving Time ကိုစဉ်းစားပါ ။ အကယ်. သတ်မှတ်ထားသောဇုန်တစ်ခုအတွက်အချိန်ဇယားဆွဲရန်အဆင်သင့်ဖြစ်လိုပါက datetime အသစ် ("ယခု" THE, $ tz) ကို သုံးမည့်အစား datetime အရာဝတ်ထုအတွက်သတ်မှတ်ထားသောအချိန်ကိုသတ်မှတ်နိုင်သည်။ ဤနည်းအားဖြင့်နေ့အလင်းရောင်ချွေတာချိန် (DST) ၏အကျိုးသက်ရောက်မှုကိုသင်စဉ်းစားနိုင်သည်။
နေ့စွဲနှင့်အချိန်အပြောင်းအလဲများ - Getoffs. () နည်းလမ်းသည် UTC အချိန်နှင့်နှိုင်းယှဉ်ပါကအော့ဖ်စက်ကိုပြန်ပို့သည်။ ယေဘုယျအားဖြင့်အချိန်ကွဲပြားခြားနားမှုများကိုစီရင်ခြင်းအတွက်အလွန်အသုံးဝင်သည် ။
Output format - ဤဥပမာ၏ရလဒ်ပုံစံသည် "UTC +/- အချိန်: မိနစ်" ဟူသောပုံစံဖြစ်သည်။
PHP ၏ timezone_idesifiers_list function မှတဆင့်နှင့် Datetimezone အတန်းမှတစ်ဆင့်ကျွန်ုပ်တို့သည် UTC offsets များကိုအချိန်တိုင်းရနိုင်သည်။ ဤအင်္ဂါရပ်သည်အချိန်ကွဲပြားခြားနားမှုများကိုတိကျမှန်ကန်သောတွက်ချက်မှုလိုအပ်သည့်အချိန်ဇုန်များနှင့်စီမံကိန်းများအကြား application များ၌အလွန်လက်တွေ့ကျသည်။ ဤဆောင်းပါးတွင်အသေးစိတ်လုပ်ငန်းလည်ပတ်ရေးလမ်းညွှန်သည်အချိန်ဇုန်အတွက် UTC offsets ကိုမည်သို့ရယူရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်သင့်အားပိုမိုနားလည်ရန်ကူညီလိမ့်မည်ဟုမျှော်လင့်ပါသည်။