227 of 410 menu

Η Κλάση DateInterval

Η κλάση DateInterval επιτρέπει την εργασία με χρονικά διαστήματα στην PHP. Χρησιμοποιείται για την αποθήκευση της διαφοράς μεταξύ δύο ημερομηνιών ή για τον ορισμό ενός διαστήματος σε μεθόδους εργασίας με ημερομηνίες. Το διάστημα δημιουργείται σε μια ειδική μορφή.

Σύνταξη

DateInterval::__construct(string $duration)

Μορφή διαστήματος

Η μορφή αποτελείται από το γράμμα P (period) και τα στοιχεία:

P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W

Σε αυτή τη μορφή: Y - χρόνια, M - μήνες, D - ημέρες, T - διαχωριστικός χρόνου, H - ώρες, M - λεπτά, S - δευτερόλεπτα, W - εβδομάδες.

Πριν από αυτά τα γράμματα πρέπει να γράφεται η αντίστοιχη τιμή. Για παράδειγμα, το 3Y θα σημαίνει τρία χρόνια, ενώ το 5Y2M θα σημαίνει 5 χρόνια και 2 μήνες.

Μετά τη δημιουργία, το αντικείμενο DateInterval θα περιέχει τις ακόλουθες ιδιότητες:

<?php $interval->y // χρόνια $interval->m // μήνες $interval->d // ημέρες $interval->h // ώρες $interval->i // λεπτά $interval->s // δευτερόλεπτα $interval->f // μικροδευτερόλεπτα $interval->invert // 1 εάν το διάστημα είναι αρνητικό $interval->days // αριθμός ημερών (εάν δημιουργήθηκε μέσω diff()) ?>

Ας δούμε τη λειτουργία του διαστήματος σε παραδείγματα:

Παράδειγμα

Ας δημιουργήσουμε ένα διάστημα 1 ώρας, 45 λεπτών και 30 δευτερολέπτων:

<?php $interval = new DateInterval('PT1H45M30S'); var_dump($interval); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 1 'i' => 45 's' => 30 )

Παράδειγμα

Ας δημιουργήσουμε ένα διάστημα 3 εβδομάδων και 2 ημερών:

<?php $interval = new DateInterval('P3W2D'); var_dump($interval); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 23 'h' => 0 'i' => 0 's' => 0 )

Παράδειγμα

Ας δημιουργήσουμε ένα διάστημα 5 μηνών, 10 ημερών και 6 ωρών:

<?php $interval = new DateInterval('P5M10DT6H'); var_dump($interval); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

DateInterval Object ( 'y' => 0 'm' => 5 'd' => 10 'h' => 6 'i' => 0 's' => 0 )

Παράδειγμα

Ας δημιουργήσουμε ένα διάστημα 2 ετών και 15 λεπτών:

<?php $interval = new DateInterval('P2YT15M'); var_dump($interval); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

DateInterval Object ( 'y' => 2 'm' => 0 'd' => 0 'h' => 0 'i' => 15 's' => 0 )

Παράδειγμα

Ας δημιουργήσουμε ένα διάστημα 1 ημέρας, 12 ωρών και 30 δευτερολέπτων:

<?php $interval = new DateInterval('P1DT12H30S'); var_dump($interval); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 1 'h' => 12 'i' => 0 's' => 30 )

Παράδειγμα

Ας δημιουργήσουμε ένα αρνητικό διάστημα 1 έτους και 3 μηνών (διάστημα προς τα πίσω):

<?php $interval = new DateInterval('P1Y3M'); $interval->invert = 1; var_dump($interval); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

DateInterval Object ( 'y' => 1 'm' => 3 'd' => 0 'h' => 0 'i' => 0 's' => 0 'invert' => 1 )

Παράδειγμα

Ας δημιουργήσουμε ένα αρνητικό διάστημα 2 ωρών, 30 λεπτών (διάστημα προς τα πίσω):

<?php $interval = new DateInterval('PT2H30M'); $interval->invert = 1; var_dump($interval); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 2 'i' => 30 's' => 0 'invert' => 1 )

Παράδειγμα

Ας προσθέσουμε ένα διάστημα στην τρέχουσα ημερομηνία:

<?php $date = new DateTime('2023-01-01'); $interval = new DateInterval('P10D'); $date->add($interval); echo $date->format('Y-m-d'); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

'2023-01-11'

Παράδειγμα

Ας υπολογίσουμε τη διαφορά μεταξύ δύο ημερομηνιών:

<?php $date1 = new DateTime('2023-01-01'); $date2 = new DateTime('2023-02-15'); $interval = $date1->diff($date2); echo $interval->format('%m μήνες %d ημέρες'); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

'1 μήνες 14 ημέρες'

Δείτε επίσης

  • η κλάση DateTime,
    που αναπαριστά ημερομηνία και ώρα
  • η κλάση DateTimeZone,
    που αναπαριστά μια ζώνη ώρας
Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη