လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> timestamp format timezone_transitions_get အတွက် parsing

timestamp format timezone_transitions_get အတွက် parsing

gitbox 2025-06-03

1 ။ Timezone_Transitions_get ကိုခြုံငုံသုံးသပ်ချက်

ဤလုပ်ဆောင်မှု၏အခြေခံအသုံးပြုမှုပုံစံမှာအောက်ပါအတိုင်းဖြစ်သည် -

 $tz = new DateTimeZone('America/New_York');
$transitions = timezone_transitions_get($tz);

သို့မဟုတ်အတိုကောက်အဖြစ်:

 $transitions = (new DateTimeZone('America/New_York'))->getTransitions();

ပြန်လာသော ဒေါ်လာအသွင်ကူးပြောင်းမှု သည်ခင်းကျင်းမှုတစ်ခုဖြစ်သည်။ element တစ်ခုစီသည်အောက်ပါနယ်ပယ်များပါ 0 င်သည့် activitive ခင်းကျင်းခြင်းဖြစ်သည်။

  • TS : Timestamp (Integer)

  • အချိန် - ISO format time (string)

  • Offset : Offset (UTC နှင့်ဆွေမျိုးအရေအတွက်)

  • ISDST - နေ့အလင်းရောင်ချွေတာချိန် (Boolean Value)

  • Absbr : လက်ရှိအချိန်အတိုကောက် (ဥပမာ EDT သို့မဟုတ် EST ကဲ့သို့)

ဤဆောင်းပါးတွင်ကျွန်ုပ်တို့၏အာရုံစူးစိုက်မှုသည် ts field တွင်ဖြစ်သည်။


2 ။ Timestamp format ကို format ခွဲခြမ်းစိတ်ဖြာ

REATED အချက်အလက်များတွင် TS သည် UNIX ခေတ် (00:00:00:00 UTC, UTC, January 1, ၎င်းသည်အပြုသဘောသို့မဟုတ်အပျက်သဘောဆောင်သောကိန်းဖြစ်သည်။

ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်ပြောင်းလဲခြင်းအချိန်ကိုအောက်ပါကုဒ်များမှတစ်ဆင့်ရယူခြင်းနှင့်ပုံနှိပ်ထုတ်ဝေသည်။

 $tz = new DateTimeZone('Europe/Paris');
$transitions = $tz->getTransitions();

foreach ($transitions as $transition) {
    echo "အချစ်:{$transition['ts']},သက်ဆိုင်ရာအချိန်:{$transition['time']}\n";
}

output သည်ဆင်တူနိုင်သည်။

 အချစ်:-1830384000,သက်ဆိုင်ရာအချိန်:1916-06-14T23:00:00+0000
အချစ်:-1689814800,သက်ဆိုင်ရာအချိန်:1916-10-01T23:00:00+0000
...

တွေ့မြင်နိုင်သည့်အတိုင်း Timestamp သည်ကိန်းဂဏန်းတစ်ခုတွင်ကိုယ်စားပြုသည့်အချိန်ကာလတစ်ခုဖြစ်ပြီးအနုတ်လက်ခဏာတန်ဖိုးသည် 1970 မတိုင်မီအချိန်ကိုကိုယ်စားပြုသည်။


3 ။ Timestamps ကို Readable Time Format နဲ့ဘယ်လိုပြောင်းလဲမလဲ။

ဤပြောင်းလဲခြင်းကိုကိုင်တွယ်ရန် dateTime class ကိုသင်အသုံးပြုနိုင်သည်။

 $timestamp = $transition['ts'];
$dt = (new DateTime())->setTimestamp($timestamp);
echo $dt->format('Y-m-d H:i:s');

ပုံမှန်အားဖြင့်ဖန်တီးထားသော datetime အရာဝတ်ထုသည်လက်ရှိအချိန်တွင်အချိန်ဇုန်တွင်ရှိသည်ဟုမှတ်ချက်ပြုသင့်သည်။

 $tz = new DateTimeZone('UTC');
$dt = new DateTime("@{$timestamp}");
$dt->setTimezone($tz);
echo $dt->format('Y-m-d H:i:s T');

4 ။ လက်တွေ့ကျသော application: အနီးဆုံးအချိန်ဇုန်ပြောင်းလဲခြင်းကိုပြပါ

လက်ရှိ offset နှင့်နေ့အလင်းရောင်ချွေတာသောအချိန်အချက်အလက်များကိုပြသရန် GetTransitions () မှပြန်လာသောစာရင်းမှလတ်တလောပြောင်းလဲခြင်းကိုကျွန်ုပ်တို့စစ်ထုတ်နိုင်သည်။

 $tz = new DateTimeZone('Asia/Shanghai');
$transitions = $tz->getTransitions();

$now = time();
$recent = null;

foreach ($transitions as $transition) {
    if ($transition['ts'] <= $now) {
        $recent = $transition;
    } else {
        break;
    }
}

echo "လတ်တလောပြောင်းလဲခြင်းအချိန်သည်:{$recent['time']},UTC အဆိုပါ offset ဖြစ်ပါတယ်:{$recent['offset']} စက်ဏန့်";

အကယ်. သင်သည်ဤအချက်အလက်များကို Web API ပုံစံဖြင့်ပြန်ပို့ရန်ရည်ရွယ်ထားပါက JSOS ကိုအောက်ပါဖွဲ့စည်းတည်ဆောက်ပုံကို အသုံးပြု. output လုပ်နိုင်သည်။

 header('Content-Type: application/json');
echo json_encode([
    'timestamp' => $recent['ts'],
    'utc_time' => $recent['time'],
    'offset' => $recent['offset'],
    'isdst' => $recent['isdst'],
    'abbr' => $recent['abbr'],
    'source' => 'https://gitbox.net/timezone/transition'
]);