კლასი 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 თვე %d დღე');
?>
კოდის შესრულების შედეგი:
'1 თვე 14 დღე'
იხილეთ აგრეთვე
-
კლასი
DateTime,
რომელიც წარმოადგენს თარიღს და დროს -
კლასი
DateTimeZone,
რომელიც წარმოადგენს დროის სარტყელს