კლასი DateTimeImmutable

კლასი DateTimeImmutable არის უცვლელი ანალოგი DateTime-ის. ის ქმნის ახალ ობიექტს ნებისმიერი მოდიფიკაციისას, რაც მას უფრო პროგნოზირებადს და უსაფრთხოს ხდის მუშაობისთვის.

ამჟამინდელი დროის მომენტი

შევქმნათ ობიექტი DateTimeImmutable ამჟამინდელი თარიღით და დროთი:

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

კონკრეტული თარიღი

შევქმნათ ობიექტი DateTimeImmutable მითითებული თარიღით:

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

კონკრეტული თარიღი და დრო

შევქმნათ ობიექტი DateTimeImmutable მითითებული თარიღით და დროთი:

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

გამოტანის ფორმატირება

შექმნილი თარიღი შეიძლება გამოიტანოს მოცემულ ფორმატში მეთოდის format გამოყენებით. გავაკეთოთ ეს ამჟამინდელი დროის მომენტისთვის:

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

შედეგი (შეიცვლება შესრულების მომენტის მიხედვით):

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

მითითებული თარიღის ფორმატირება

დავფორმატოთ მითითებული თარიღი:

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

კოდის შესრულების შედეგი:

php'31.12.2025'

ინტერვალის დამატება

ინტერვალის დამატება თარიღზე ხორციელდება მეთოდის add მეშვეობით:

php<?php
  $date = new DateTimeImmutable('2025-05-15');
  $interval = new DateInterval('P10D'); // 10 დღე
  $newDate = $date->add($interval);
  echo $newDate->format('Y-m-d');
?>

კოდის შესრულების შედეგი:

php'2025-05-25'

ინტერვალის გამოკლება

ინტერვალის გამოკლება თარიღს ხორციელდება მეთოდის sub მეშვეობით:

php<?php
  $date = new DateTimeImmutable('2025-05-15');
  $interval = new DateInterval('P1M2D'); // 1 თვე და 2 დღე
  $newDate = $date->sub($interval);
  echo $newDate->format('Y-m-d');
?>

კოდის შესრულების შედეგი:

php'2025-04-13'

ახალი თარიღის დაყენება

შესაძლებელია ახალი თარიღის დაყენება ობიექტისთვის DateTimeImmutable. ეს კეთდება მეთოდის setDate მეშვეობით:

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

კოდის შესრულების შედეგი:

php'2024-12-31'

დროის დაყენება

შესაძლებელია ახალი დროის დაყენება ობიექტისთვის DateTimeImmutable. ეს კეთდება მეთოდის setTime მეშვეობით:

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

კოდის შესრულების შედეგი:

php'15:30:00'

თარიღების შედარება

შესაძლებელია თარიღების მქონე ობიექტების შედარება:

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

ობიექტის შექმნა დროის სარტყელთან ერთად

ობიექტის DateTimeImmutable შექმნისას შესაძლებელია მიუთითოთ დროის სარტყელი:

php<?php
  $timeZone = new DateTimeZone('Europe/Moscow');
  $date = new DateTimeImmutable('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'

იხილეთ აგრეთვე

  • კლასი DateInterval,
    რომელიც აყენებს დროის ინტერვალს
  • კლასი DateTimeZone,
    რომელიც აყენებს დროის სარტყელს