DateInterval වර්ගය

DateInterval වර්ගය PHP හි වේලාවන් අන්තරයන් සමඟ වැඩ කිරීමට ඉඩ දෙයි. එය දින දෙකක් අතර වෙනස ගබඩා කිරීමට හෝ දින සමඟ වැඩ කිරීමේ ක්‍රමවල අන්තරයක් නියම කිරීමට භාවිතා කරයි. අන්තරයක් විශේෂ ආකෘතියකින් සාදනු ලැබේ.

වාක්‍ය රීතිය

phpDateInterval::__construct(string $duration)

අන්තර ආකෘතිය

ආකෘතිය අකුර P (කාල සීමාව) සහ මූලද්‍රව්‍ය වලින් සමන්විත වේ:

phpP{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<?php
  $interval->y  // අවුරුදු
  $interval->m  // මාස
  $interval->d  // දින
  $interval->h  // පැය
  $interval->i  // මිනිත්තු
  $interval->s  // තත්පර
  $interval->f  // මයික්‍රෝ තත්පර
  $interval->invert // 1 අන්තරය negative නම්
  $interval->days // දින ගණන (diff() හරහා සෑදුවොත්)
?>

අන්තරයක් වැඩ කිරීම උදාහරණ මගින් බලමු:

උදාහරණය

1 පැය, 45 මිනිත්තු සහ 30 තත්පර අන්තරයක් සාදමු:

php<?php
  $interval = new DateInterval('PT1H45M30S');
  var_dump($interval);
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

phpDateInterval Object
(
  'y' => 0
  'm' => 0
  'd' => 0
  'h' => 1
  'i' => 45
  's' => 30
)

උදාහරණය

3 සති සහ 2 දින අන්තරයක් සාදමු:

php<?php
  $interval = new DateInterval('P3W2D');
  var_dump($interval);
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

phpDateInterval Object
(
  'y' => 0
  'm' => 0
  'd' => 23
  'h' => 0
  'i' => 0
  's' => 0
)

උදාහරණය

5 මාස, 10 දින සහ 6 පැය අන්තරයක් සාදමු:

php<?php
  $interval = new DateInterval('P5M10DT6H');
  var_dump($interval);
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

phpDateInterval Object
(
  'y' => 0
  'm' => 5
  'd' => 10
  'h' => 6
  'i' => 0
  's' => 0
)

උදාහරණය

2 අවුරුදු සහ 15 මිනිත්තු අන්තරයක් සාදමු:

php<?php
  $interval = new DateInterval('P2YT15M');
  var_dump($interval);
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

phpDateInterval Object
(
  'y' => 2
  'm' => 0
  'd' => 0
  'h' => 0
  'i' => 15
  's' => 0
)

උදාහරණය

1 දින, 12 පැය සහ 30 තත්පර අන්තරයක් සාදමු:

php<?php
  $interval = new DateInterval('P1DT12H30S');
  var_dump($interval);
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

phpDateInterval Object
(
  'y' => 0
  'm' => 0
  'd' => 1
  'h' => 12
  'i' => 0
  's' => 30
)

උදාහරණය

1 අවුරුදු සහ 3 මාස negative අන්තරයක් සාදමු (පසුපසට අන්තරය):

php<?php
  $interval = new DateInterval('P1Y3M');
  $interval->invert = 1;
  var_dump($interval);
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

phpDateInterval Object
(
  'y' => 1
  'm' => 3
  'd' => 0
  'h' => 0
  'i' => 0
  's' => 0
  'invert' => 1
)

උදාහරණය

2 පැය, 30 මිනිත්තු negative අන්තරයක් සාදමු (පසුපසට අන්තරය):

php<?php
  $interval = new DateInterval('PT2H30M');
  $interval->invert = 1;
  var_dump($interval);
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

phpDateInterval Object
(
  'y' => 0
  'm' => 0
  'd' => 0
  'h' => 2
  'i' => 30
  's' => 0
  'invert' => 1
)

උදාහරණය

වත්මන් දිනයට අන්තරයක් එකතු කරමු:

php<?php
  $date = new DateTime('2023-01-01');
  $interval = new DateInterval('P10D');
  $date->add($interval);
  echo $date->format('Y-m-d');
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

php'2023-01-11'

උදාහරණය

දින දෙකක් අතර වෙනස ගණනය කරමු:

php<?php
  $date1 = new DateTime('2023-01-01');
  $date2 = new DateTime('2023-02-15');
  $interval = $date1->diff($date2);
  echo $interval->format('%m months %d days');
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

php'1 months 14 days'

බලන්න

  • DateTime වර්ගය,
    එය දිනය සහ වේලාව නියෝජනය කරයි
  • DateTimeZone වර්ගය,
    එය වේලා කලාපය නියෝජනය කරයි