Η Κλάση DateTimeImmutable
Η κλάση DateTimeImmutable είναι το αμετάβλητο αντίστοιχο της DateTime. Δημιουργεί ένα νέο αντικείμενο σε κάθε τροποποίηση, κάτι που την καθιστά πιο προβλέψιμη και ασφαλή για εργασία.
Τρέχουσα χρονική στιγμή
Ας δημιουργήσουμε ένα αντικείμενο DateTimeImmutable
με την τρέχουσα ημερομηνία και ώρα:
<?php
$date = new DateTimeImmutable();
?>
Συγκεκριμένη ημερομηνία
Ας δημιουργήσουμε ένα αντικείμενο DateTimeImmutable με συγκεκριμένη ημερομηνία:
<?php
$date = new DateTimeImmutable('2025-12-31');
?>
Συγκεκριμένη ημερομηνία και ώρα
Ας δημιουργήσουμε ένα αντικείμενο DateTimeImmutable
με συγκεκριμένη ημερομηνία και ώρα:
<?php
$date = new DateTimeImmutable('2025-12-31 12:59:59');
?>
Μορφοποίηση εξόδου
Η δημιουργημένη ημερομηνία μπορεί να εκτυπωθεί σε καθορισμένη μορφή
με τη μέθοδο format. Ας το κάνουμε
για την τρέχουσα χρονική στιγμή:
<?php
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:s');
?>
Αποτέλεσμα (θα αλλάζει ανάλογα με τη στιγμή εκτέλεσης):
'2025-11-15 14:25:00'
Μορφοποίηση συγκεκριμένης ημερομηνίας
Ας μορφοποιήσουμε μια συγκεκριμένη ημερομηνία:
<?php
$date = new DateTimeImmutable('2025-12-31');
echo $date->format('d.m.Y');
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'31.12.2025'
Προσθήκη διαστήματος
Η προσθήκη διαστήματος σε μια ημερομηνία
πραγματοποιείται μέσω της μεθόδου add:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P10D'); // 10 ημέρες
$newDate = $date->add($interval);
echo $newDate->format('Y-m-d');
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'2025-05-25'
Αφαίρεση διαστήματος
Η αφαίρεση διαστήματος από μια ημερομηνία
πραγματοποιείται μέσω της μεθόδου sub:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 μήνας και 2 ημέρες
$newDate = $date->sub($interval);
echo $newDate->format('Y-m-d');
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'2025-04-13'
Ορισμός νέας ημερομηνίας
Μπορεί να οριστεί μια νέα ημερομηνία για
το αντικείμενο DateTimeImmutable. Αυτό γίνεται
μέσω της μεθόδου setDate:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2024, 12, 31);
echo $newDate->format('Y-m-d');
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'2024-12-31'
Ορισμός ώρας
Μπορεί να οριστεί μια νέα ώρα για
το αντικείμενο DateTimeImmutable. Αυτό γίνεται
μέσω της μεθόδου setTime:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setTime(15, 30, 0);
echo $newDate->format('H:i:s');
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'15:30:00'
Σύγκριση ημερομηνιών
Μπορούν να συγκριθούν αντικείμενα με ημερομηνίες:
<?php
$date1 = new DateTimeImmutable('2025-01-01');
$date2 = new DateTimeImmutable('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Δημιουργία αντικειμένου με ζώνη ώρας
Κατά τη δημιουργία αντικειμένου DateTimeImmutable
μπορεί να καθοριστεί η ζώνη ώρας:
<?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');
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'2025-12-31 23:59:59 Europe/Moscow'
Δείτε επίσης
-
η κλάση
DateInterval,
που ορίζει ένα χρονικό διάστημα -
η κλάση
DateTimeZone,
που ορίζει μια ζώνη ώρας