DateTime классты

DateTime классты дата/убакыт менен иштөөнүн ООП стилиндеги негизги куралы болуп саналат. Ал дата/убакыт объекттерин түзүүгө, аларды өзгөртүүгө жана чыгарууну форматтоого мүмкүндүк берет.

Учурдагы убакыт

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 ай %d күн');
?>

Кодду аткаруунун жыйынтыгы:

php'1 ай 14 күн'

Убакыт алкагы

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 классты,
    убакыт алкагын белгилейт