DateInterval Class
DateInterval class သည် PHP တွင် အချိန်ကာလများနှင့် အလုပ်လုပ်ခွင့်ပြုပါသည်။
၎င်းကို ရက်စွဲနှစ်ခုကြားကွာခြားချက်ကို သိမ်းဆည်းရန် သို့မဟုတ် ရက်စွဲများနှင့် အလုပ်လုပ်သည့် method များတွင် ကာလတစ်ခုသတ်မှတ်ရန် အသုံးပြုပါသည်။ ကာလကို အထူး format တစ်ခုဖြင့် ဖန်တီးထားပါသည်။
Syntax
DateInterval::__construct(string $duration)
ကာလ Format
Format သည် P (period) စာလုံးနှင့်
အစိတ်အပိုင်းများပါဝင်သည်။
P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W
ဤ format တွင်: Y - နှစ်များ၊ M - လများ၊
D - ရက်များ၊ T - အချိန်ပိုင်းခြားခြင်း၊
H - နာရီများ၊ M - မိနစ်များ၊ S - စက္ကန့်များ၊
W - သီတင်းပတ်များ။
ဤအက္ခရာများမတိုင်မီ သက်ဆိုင်ရာ
တန်ဖိုးများကို ရေးရပါမည်။ ဥပမာ၊ 3Y ဆိုလျှင်
သုံးနှစ် ဖြစ်ပြီး၊ 5Y2M ဆိုလျှင်
5 နှစ်နှင့် 2 လ ဟု သတ်မှတ်ပါသည်။
ဖန်တီးပြီးနောက် DateInterval object
တွင် အောက်ပါ properties များ ပါဝင်ပါမည်။
<?php
$interval->y // နှစ်များ
$interval->m // လများ
$interval->d // ရက်များ
$interval->h // နာရီများ
$interval->i // မိနစ်များ
$interval->s // စက္ကန့်များ
$interval->f // မိုက်ခရိုစက္ကန့်များ
$interval->invert // 1 သည် ကာလအနှုတ်လက္ခဏာဆောင်လျှင်
$interval->days // ရက်အရေအတွက် (diff() မှတစ်ဆင့် ဖန်တီးလျှင်)
?>
ကာလ၏လုပ်ဆောင်ချက်ကို ဥပမာများဖြင့် ကြည့်ရှုကြပါစို့။
ဥပမာ
1 နာရီ၊ 45 မိနစ်နှင့် 30 စက္ကန့် ကာလတစ်ခုကို ဖန်တီးကြမည်။
<?php
$interval = new DateInterval('PT1H45M30S');
var_dump($interval);
?>
ကုဒ်လုပ်ဆောင်ချက်၏ ရလဒ်။
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 1
'i' => 45
's' => 30
)
ဥပမာ
3 သီတင်းပတ်နှင့် 2 ရက် ကာလတစ်ခုကို ဖန်တီးကြမည်။
<?php
$interval = new DateInterval('P3W2D');
var_dump($interval);
?>
ကုဒ်လုပ်ဆောင်ချက်၏ ရလဒ်။
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 23
'h' => 0
'i' => 0
's' => 0
)
ဥပမာ
5 လ၊ 10 ရက်နှင့် 6 နာရီ ကာလတစ်ခုကို ဖန်တီးကြမည်။
<?php
$interval = new DateInterval('P5M10DT6H');
var_dump($interval);
?>
ကုဒ်လုပ်ဆောင်ချက်၏ ရလဒ်။
DateInterval Object
(
'y' => 0
'm' => 5
'd' => 10
'h' => 6
'i' => 0
's' => 0
)
ဥပမာ
2 နှစ်နှင့် 15 မိနစ် ကာလတစ်ခုကို ဖန်တီးကြမည်။
<?php
$interval = new DateInterval('P2YT15M');
var_dump($interval);
?>
ကုဒ်လုပ်ဆောင်ချက်၏ ရလဒ်။
DateInterval Object
(
'y' => 2
'm' => 0
'd' => 0
'h' => 0
'i' => 15
's' => 0
)
ဥပမာ
1 ရက်၊ 12 နာရီနှင့် 30 စက္ကန့် ကာလတစ်ခုကို ဖန်တီးကြမည်။
<?php
$interval = new DateInterval('P1DT12H30S');
var_dump($interval);
?>
ကုဒ်လုပ်ဆောင်ချက်၏ ရလဒ်။
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 1
'h' => 12
'i' => 0
's' => 30
)
ဥပမာ
1 နှစ်နှင့် 3 လ (နောက်ပြန်ကာလ) အနှုတ်လက္ခဏာဆောင် ကာလတစ်ခုကို ဖန်တီးကြမည်။
<?php
$interval = new DateInterval('P1Y3M');
$interval->invert = 1;
var_dump($interval);
?>
ကုဒ်လုပ်ဆောင်ချက်၏ ရလဒ်။
DateInterval Object
(
'y' => 1
'm' => 3
'd' => 0
'h' => 0
'i' => 0
's' => 0
'invert' => 1
)
ဥပမာ
2 နာရီ၊ 30 မိနစ် (နောက်ပြန်ကာလ) အနှုတ်လက္ခဏာဆောင် ကာလတစ်ခုကို ဖန်တီးကြမည်။
<?php
$interval = new DateInterval('PT2H30M');
$interval->invert = 1;
var_dump($interval);
?>
ကုဒ်လုပ်ဆောင်ချက်၏ ရလဒ်။
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 2
'i' => 30
's' => 0
'invert' => 1
)
ဥပမာ
လက်ရှိရက်စွဲသို့ ကာလတစ်ခုထည့်ကြမည်။
<?php
$date = new DateTime('2023-01-01');
$interval = new DateInterval('P10D');
$date->add($interval);
echo $date->format('Y-m-d');
?>
ကုဒ်လုပ်ဆောင်ချက်၏ ရလဒ်။
'2023-01-11'
ဥပမာ
ရက်စွဲနှစ်ခုကြား ကွာခြားချက်ကို တွက်ချက်ကြမည်။
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m months %d days');
?>
ကုဒ်လုပ်ဆောင်ချက်၏ ရလဒ်။
'1 months 14 days'
ဆက်လက်ကြည့်ရှုရန်
-
DateTimeclass,
သည် ရက်စွဲနှင့် အချိန်ကို ကိုယ်စားပြုပါသည်။ -
DateTimeZoneclass,
သည် အချိန်ဇုံကို ကိုယ်စားပြုပါသည်။