DateTime Sınıfı

DateTime sınıfı, nesne yönelimli stilde tarih ve zaman işlemleri için temel araçtır. Tarih/zaman nesneleri oluşturmanıza, bunları değiştirmenize ve biçimlendirilmiş çıktı almanıza olanak tanır.

Mevcut zaman anı

Mevcut tarih ve zaman ile bir DateTime nesnesi oluşturalım:

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

Belirli bir tarih

Belirtilen tarihle bir DateTime nesnesi oluşturalım:

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

Belirli bir tarih

Belirtilen tarih ve zaman ile bir DateTime nesnesi oluşturalım:

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

Çıktıyı biçimlendirme

Oluşturulan tarih, format yöntemi kullanılarak belirtilen biçimde çıktılanabilir. Bunu mevcut zaman anı için yapalım:

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

Sonuç (çalıştırma anına bağlı olarak değişecektir):

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

Belirtilen tarihin biçimlendirilmesi

Belirtilen tarihi biçimlendirelim:

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

Kodun çalıştırma sonucu:

php'31.12.2025'

Aralık ekleme

Tarihe aralık eklenmesi add yöntemi ile gerçekleştirilir:

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

Kodun çalıştırma sonucu:

php'2025-05-25'

Aralık çıkarma

Tarihten aralık çıkarılması sub yöntemi ile gerçekleştirilir:

php<?php
  $date = new DateTime('2025-05-15');
  $interval = new DateInterval('P1M2D'); // 1 ay ve 2 gün
  $date->sub($interval);
  echo $date->format('Y-m-d');
?>

Kodun çalıştırma sonucu:

php'2025-04-13'

Yeni tarih ayarlama

DateTime nesnesi için yeni bir tarih ayarlanabilir. Bu, setDate yöntemi ile yapılır:

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

Kodun çalıştırma sonucu:

php'2025-12-31'

Zaman ayarlama

DateTime nesnesi için yeni bir zaman ayarlanabilir. Bu, setTime yöntemi ile yapılır:

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

Kodun çalıştırma sonucu:

php'15:30:00'

Tarihleri karşılaştırma

Tarih nesneleri karşılaştırılabilir:

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

Tarihler arasındaki fark

diff yöntemi kullanılarak tarihler arasındaki fark hesaplanabilir. Fark, bir DateInterval nesnesi olarak döndürülür:

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

Kodun çalıştırma sonucu:

php'1 ay 14 gün'

Saat dilimi

DateTime nesnesi oluşturulurken saat dilimi belirtilebilir:

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');
?>

Kodun çalıştırma sonucu:

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

Ayrıca bakınız