DateTime ක්‍රමය

DateTime ක්‍රමය OOP විලාසයෙන් දින සහ වේලා සමඟ වැඩ කිරීම සඳහා ප්‍රධාන මෙවලමයි. එය දින/වේලා වස්තූන් නිර්මාණය කිරීම, ඒවා වෙනස් කිරීම සහ ප්‍රතිදානය ආකෘතිගත කිරීමට ඉඩ සලසයි.

වත්මන් වේලාව

වත්මන් දිනය සහ වේලාව සමඟ DateTime වස්තුවක් නිර්මාණය කරමු:

php<?php
  $date = new DateTime();
?>

නිශ්චිත දිනයක්

නිශ්චිත දිනයක් සමඟ DateTime වස්තුවක් නිර්මාණය කරමු:

php<?php
  $date = new DateTime('2025-12-31');
?>

නිශ්චිත දිනය සහ වේලාව

නිශ්චිත දිනය සහ වේලාව සමඟ DateTime වස්තුවක් නිර්මාණය කරමු:

php<?php
  $date = new DateTime('2025-12-31 12:59:59');
?>

ප්‍රතිදානය ආකෘතිගත කිරීම

නිර්මාණය කරන ලද දිනය නිශ්චිත ආකෘතියකින් ප්‍රතිදානය කළ හැකිය format ක්‍රමය භාවිතයෙන්. අපි එය වත්මන් වේලාව සඳහා කරමු:

php<?php
  $date = new DateTime();
  echo $date->format('Y-m-d H:i:s');
?>

ප්‍රතිඵලය (ක්‍රියාත්මක කිරීමේ මොහොත අනුව වෙනස් වේ):

php'2025-11-15 14:25:00'

නිශ්චිත දිනය ආකෘතිගත කිරීම

නිශ්චිත දිනයක් ආකෘතිගත කරමු:

php<?php
  $date = new DateTime('2025-12-31');
  echo $date->format('d.m.Y');
?>

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

php'31.12.2025'

කාල අන්තරය එකතු කිරීම

දිනයකට කාල අන්තරය එකතු කිරීම add ක්‍රමය හරහා සිදු කරනු ලැබේ:

php<?php
  $date = new DateTime('2025-05-15');
  $interval = new DateInterval('P10D'); // දින 10
  $date->add($interval);
  echo $date->format('Y-m-d');
?>

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

php'2025-05-25'

කාල අන්තරය අඩු කිරීම

දිනයකින් කාල අන්තරය අඩු කිරීම sub ක්‍රමය හරහා සිදු කරනු ලැබේ:

php<?php
  $date = new DateTime('2025-05-15');
  $interval = new DateInterval('P1M2D'); // මාස 1 සහ දින 2
  $date->sub($interval);
  echo $date->format('Y-m-d');
?>

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

php'2025-04-13'

නව දිනයක් සැකසීම

DateTime වස්තුව සඳහා නව දිනයක් සැකසිය හැකිය. මෙය setDate ක්‍රමය හරහා සිදු කෙරේ:

php<?php
  $date = new DateTime();
  $date->setDate(2025, 12, 31);
  echo $date->format('Y-m-d');
?>

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

php'2025-12-31'

වේලාව සැකසීම

DateTime වස්තුව සඳහා නව වේලාවක් සැකසිය හැකිය. මෙය setTime ක්‍රමය හරහා සිදු කෙරේ:

php<?php
  $date = new DateTime();
  $date->setTime(15, 30, 0);
  echo $date->format('H:i:s');
?>

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

php'15:30:00'

දින සංසන්දනය කිරීම

දින සහිත වස්තූන් සංසන්දනය කළ හැකිය:

php<?php
  $date1 = new DateTime('2025-01-01');
  $date2 = new DateTime('2025-02-01');
  
  if ($date1 < $date2) {
    echo '+++';
  } else {
    echo '---';
  }
?>

දින අතර වෙනස

diff ක්‍රමය භාවිතයෙන් දින අතර වෙනස ගණනය කළ හැකිය. වෙනස DateInterval වස්තුවක් ලෙස ආපසු ලැබේ:

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 වස්තුව නිර්මාණය කිරීමේදී වේලා කලාපය නිශ්චිතව දැක්විය හැකිය:

php<?php
  $timeZone = new DateTimeZone('Europe/Moscow');
  $date = new DateTime('2025-12-31 23:59:59', $timeZone);
  
  echo $date->format('Y-m-d H:i:s e');
?>

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

php'2025-12-31 23:59:59 Europe/Moscow'

මෙයද බලන්න

  • DateTimeImmutable ක්‍රමය,
    වෙනස් නොකළ හැකි දිනයක් නිර්මාණය කරයි
  • DateInterval ක්‍රමය,
    කාල අන්තරයක් නිර්වචනය කරයි
  • DateTimeZone ක්‍රමය,
    වේලා කලාපයක් නිර්වචනය කරයි