DateInterval դասը
DateInterval դասը թույլ է տալիս աշխատել ժամանակային միջակայքերի հետ PHP-ում:
Այն օգտագործվում է երկու ամսաթվերի միջև տարբերությունը պահելու կամ ամսաթվերի հետ աշխատելու մեթոդներում միջակայք նշելու համար: Միջակայքը ստեղծվում է հատուկ ֆորմատով:
Շարահյուսություն
DateInterval::__construct(string $duration)
Միջակայքի ֆորմատ
Ֆորմատը բաղկացած է P (period) տառից
և տարրերից:
P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W
Այս ֆորմատում. Y - տարիներ, M - ամիսներ,
D - օրեր, T - ժամանակի բաժանարար,
H - ժամեր, M - րոպեներ, S - վայրկյաններ,
W - շաբաթներ:
Այս տառերից առաջ անհրաժեշտ է գրել համապատասխան
արժեքը: Օրինակ, 3Y կնշանակի
երեք տարի, իսկ 5Y2M կնշանակի
5 տարի և 2 ամիս:
Ստեղծվելուց հետո DateInterval օբյեկտը
կպարունակի հետևյալ հատկությունները.
<?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'
Տես նաև
-
DateTimeդասը,
որը ներկայացնում է ամսաթիվ և ժամ -
DateTimeZoneդասը,
որը ներկայացնում է ժամային գոտի