ကမ္ဘာလုံးဆိုင်ရာအသုံးချပရိုဂရမ်များဖွံ့ဖြိုးတိုးတက်လာသည့်အခါဘုံနှင့်ခက်ခဲသောပြ problem နာတစ်ခုမှာ - ။ ကွဲပြားခြားနားသောအချိန်ဇုန်များမှသုံးစွဲသူများသည် API တောင်းဆိုမှုများကိုအစပြုသောအခါ, ဆာဗာသည်သတ်မှတ်ထားသောအချိန်ဇုန်ကိုအသုံးပြုပါကအချိန်ကုန်ခံပြီး (utc သို့မဟုတ် server locous time) ကိုအသုံးပြုသည်။ ဥပမာအားဖြင့်, အသုံးပြုသူချိန်းဆိုသည့်အချိန်, အမိန့်ဖန်တီးမှုအချိန်သို့မဟုတ်စာရင်းအင်းဆိုင်ရာအစီရင်ခံစာများစသည်တို့စသည်တို့ကိုလွဲမှားစေနိုင်သည်။
ဤပြ problem နာကိုဖြေရှင်းရန်အတွက် PHP တွင် TimeZone_open နှင့်ဆက်စပ်သောအချိန်ဇုန်လုပ်ဆောင်ချက်များကို တောင်းဆိုမှုအဆင့်တွင်အလိုအလျောက်အချိန်အတင်းအလိုက် သင့်တော်သည်။ ဤနည်းအားဖြင့်အသုံးပြုသူမှမည်သည့်နိုင်ငံနှင့်တိုင်းဒေသကြီးမှမည်သည့်နေရာတွင်ရှိနေပါစေဆာဗာသည်အသုံးပြုသူမှသတ်မှတ်ထားသောဇုန်သတ်မှတ်ချက်များအရအချိန်အချက်အလက်များကိုတိကျစွာလုပ်ဆောင်နိုင်သည်။
Developer အတော်များများသည် UTC သို့အချိန်ကုန်ခံပြီး Datc သည် Database သိုလှောင်ခြင်းနှင့်ဒေတာထပ်တူပြုခြင်း၏ရှုထောင့်မှကြည့်ရှုခြင်း၏ရှုထောင့်မှကြည့်ရှုရန်ရွေးချယ်ပါလိမ့်မည်။ သို့သော်ပြနာက အသုံးပြုသူများမြင်သည့်အချိန်သည် UTC မဟုတ်ဘဲဒေသအလိုက်ဖြစ်သည် ။
ဥပမာ - PM ဘေဂျင်း 3 နာရီတွင်သင်အမှာစာတစ်ခုပြုလုပ်သည်။ အကယ်. ဆာဗာသည် UTC အချိန် (I.E. 7 AM) ကိုမှတ်တမ်းတင်ပါကအသုံးပြုသူသည်အမိန့်မှတ်တမ်းကိုဖွင့်လှစ်ပြီး၎င်းသည် "နံနက် 7 နာရီတွင်အမိန့်" ဖြစ်လိမ့်မည်။
TimeZone_open () သည် PHP တွင် function တစ်ခုဖြစ်ပြီး Datetimezone အရာဝတ်ထုကိုဖန်တီးပေးသည်။ ၎င်း၏စွမ်းအင်သည်အချိန်ဇုန်ဆိုင်ရာအမှတ်အသား (ဥပမာအားဖြင့် အာရှ / ရှန်ဟိုင်း , ဤအရာဝတ်ထုကို dateTime မှ သုံး. အချိန်ကုန်ချိန်ညှိခြင်းအားဖြင့်အသုံးပြုနိုင်သည်။
<span><span><span class="hljs-variable">$tz</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_open</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-variable">$date</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-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span></span>
ထုတ်လုပ်မှုသည်လက်ရှိရှန်ဟိုင်းအချိန်မဟုတ်ဘဲဆာဗာ၏ပုံမှန်အချိန်ဇုန်၏အချိန်မဟုတ်ပါ။
သင့်တွင် interface / api / create ဖြစ်ရပ်တစ်ခု ရှိပြီးအသုံးပြုသူသည်တောင်းဆိုမှုတစ်ခုပို့သောအခါ timestamp နှင့်အချိန်ဇုန်အမှတ်အသားတစ်ခုသို့သွားလိမ့်မည်။
<span><span><span class="hljs-punctuation">{</span></span><span>
</span><span><span class="hljs-attr">"event_time"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-string">"2025-06-22 15:00:00"</span></span><span><span class="hljs-punctuation">,</span></span><span>
</span><span><span class="hljs-attr">"timezone"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-string">"America/New_York"</span></span><span>
</span><span><span class="hljs-punctuation">}</span></span><span>
</span></span>
၎င်းကိုဆာဗာတွင်ဤကဲ့သို့သောအမျိုးအစားကိုသင်ကိုင်တွယ်နိုင်သည်။
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">parseClientTime</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$timeStr</span></span></span><span>, </span><span><span class="hljs-variable">$timezoneStr</span></span><span>) {
</span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-variable">$tz</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_open</span></span><span>(</span><span><span class="hljs-variable">$timezoneStr</span></span><span>);
</span><span><span class="hljs-variable">$date</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-variable">$timeStr</span></span><span>, </span><span><span class="hljs-variable">$tz</span></span><span>);
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>;
} </span><span><span class="hljs-keyword">catch</span></span><span> (</span><span><span class="hljs-built_in">Exception</span></span><span> </span><span><span class="hljs-variable">$e</span></span><span>) {
</span><span><span class="hljs-comment">// ပျက်ကွက်ခြင်း fallback ရောက်လာ UTC</span></span><span>
</span><span><span class="hljs-keyword">return</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-variable">$timeStr</span></span><span>, </span><span><span class="hljs-title function_ invoke__">timezone_open</span></span><span>(</span><span><span class="hljs-string">'UTC'</span></span><span>));
}
}
</span><span><span class="hljs-comment">// ဥပမာအသုံးပြုမှု</span></span><span>
</span><span><span class="hljs-variable">$clientTime</span></span><span> = </span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'event_time'</span></span><span>] ?? </span><span><span class="hljs-string">''</span></span><span>;
</span><span><span class="hljs-variable">$clientTimezone</span></span><span> = </span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'timezone'</span></span><span>] ?? </span><span><span class="hljs-string">'UTC'</span></span><span>;
</span><span><span class="hljs-variable">$eventDate</span></span><span> = </span><span><span class="hljs-title function_ invoke__">parseClientTime</span></span><span>(</span><span><span class="hljs-variable">$clientTime</span></span><span>, </span><span><span class="hljs-variable">$clientTimezone</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဆာဗာမှတ်တမ်းများကိုပေါင်းစည်းခြင်း UTC အချိန်: "</span></span><span> . </span><span><span class="hljs-variable">$eventDate</span></span><span>-></span><span><span class="hljs-title function_ invoke__">setTimezone</span></span><span>(</span><span><span class="hljs-title function_ invoke__">timezone_open</span></span><span>(</span><span><span class="hljs-string">'UTC'</span></span><span>))-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span></span>
ဒီအပြောင်းအလဲနဲ့ပြီးတဲ့အခါ, ဆာဗာသည်အသုံးပြုသူဝင်သောအချိန်ဇယားကိုလုပ်နိုင်သည်။
အသုံးပြုသူမှတင်ပြသော "local time" ကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာခြင်း,
စည်းလုံးညီညွတ်သော UTC သို့ပြောင်းပြီးဒေတာဘေ့စ်ထဲသို့သိမ်းဆည်းပါ။
အချက်အလက်များကိုပြန်ပို့သောအခါအသုံးပြုသူအချိန်ဇုန်အရ၎င်းကို dynamally format အညီပုံဖော်လိမ့်မည်။
developer တချို့ဟာ GMT offsets (ဥပမာ +0800 စသည့် +0800) ကိုရှေ့ဆုံးအထိတိုက်ရိုက်ထုတ်လွှင့်တတ်ကြပေမည်။ Europe / London ကဲ့သို့သော Europe / London ကဲ့သို့သောစံချိန်စံညွှန်းတွင်စံချိန်စံညွှန်းကိန်းတွင်စံသတ်မှတ်ချက်ဇုန်သတ်မှတ်ချက်များကိုဖြတ်ကျော်ရန်လည်းအကြံပြုပါသည်။
TimeZone_open သည်အချိန်ဇုန်ကွဲပြားခြားနားမှုများကိုကိုင်တွယ်ဖြေရှင်းရန်အတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းနှင့်အတူ PHP ပရိုဂရမ်များကလုပ်နိုင်သည် -
အသုံးပြုသူဒေသအလိုက်ကိုတိကျစွာခွဲခြမ်းစိတ်ဖြာခြင်း,
အတွင်းပိုင်းအချိန်အပြောင်းအလဲနဲ့ယုတ္တိဗေဒစည်းလုံးညီညွတ်မှုကိုပေါင်းစည်းခြင်း,
အသုံးပြုသူအတွေ့အကြုံကိုတိုးတက်အောင်လုပ်ပြီးအချိန်မမှန်ခြင်းကိုရှောင်ပါ။
ကမ္ဘာလုံးဆိုင်ရာအသုံးပြုသူများကိုထောက်ပံ့သော API တစ်ခုကိုတီထွင်သည့်အခါအချိန်ဇုန်များသည်အသေးစိတ်အချက်အလက်များမဟုတ်ဘဲဖောင်ဒေးရှင်းများဖြစ်သည်။ နောက်တစ်ခါ "အချိန်" ပြ problem နာသည် "ပြ problem နာမရှိပါ" ပြ problem နာမကိုက်ညီပါကမမေ့ပါနှင့် - TimeZone_open () သည် သင့်ကိုဆံပင်များစွာဆုံးရှုံးစေနိုင်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
API