Πώς να λάβετε τη σημερινή ημερομηνία php. Πρώτο σενάριο PHP: Εμφάνιση ημερομηνίας και ώρας

Η εργασία με την ημερομηνία και την ώρα στην PHP είναι σχετικά εύκολη. Η παρουσία ενός αρκετά μεγάλου αριθμού συναρτήσεων καθιστά τον κώδικα όχι τόσο δυσκίνητο (και στην PHP 5.2 με την εμφάνιση του DateTime και στο 5.3 με την προσθήκη των κλάσεων DateInterval και DatePeriod και μεμονωμένων μεθόδων - η εργασία με ημερομηνίες έχει γίνει ακόμη πιο απλή και πιο βολικός). Οπότε, για να δουλέψετε με ημερομηνίες... Πρώτα, σε κάθε περίπτωση, θα πρέπει να έχετε υπόψη σας ότι:

  • σχεδόν οποιαδήποτε ενέργεια μπορεί να γίνει με διάφορους τρόπους.
  • Όλος ο κώδικας είναι γραμμένος για επίδειξη και παραδείγματα εργασίας.
  • Το προτεινόμενο εναλλακτικό αποτέλεσμα μπορεί να μην είναι πάντα κατάλληλο όταν χρησιμοποιείτε μια παλαιότερη έκδοση της PHP (μερικές φορές πιο εύκολη από την επεξεργασία κώδικα εργασίας πριν από πολλά χρόνια).

Στην PHP 5.3 να λειτουργεί σωστά με ημερομηνίες για να αποφευχθούν σφάλματα αυστηρών προτύπων. Σήμερα, κατά κανόνα, αυτή η κατάσταση λαμβάνεται υπόψη είτε σε σενάρια είτε σε ρυθμίσεις φιλοξενίας.

Η PHP μετατρέπει τη χρονική σήμανση UNIX σε ημερομηνία σε δεδομένη μορφή

Μια από τις πιο απλές εργασίες. Η συνάρτηση που χρησιμοποιείται είναι: ημερομηνία ($format, $time)
Η πρώτη παράμετρος μεταβιβάζει τη μορφή ημερομηνίας - για περισσότερες λεπτομέρειες, ανατρέξτε στην τεκμηρίωση (για τη "συνήθη" 28.02.2012 15:43:59 πρέπει να χρησιμοποιείται:
ημερομηνία ("d.m.Y H:i:s", $time)

PHP πώς να μάθετε την αυριανή/χθεσινή ημερομηνία

Όλα είναι απλά και εδώ. Η συνάρτηση time() λαμβάνει την τρέχουσα ώρα σε μορφή Timestamp UNIX. Αφαιρούμε (τη χθεσινή ημερομηνία) ή προσθέτουμε (αύριο) τον απαιτούμενο αριθμό δευτερολέπτων (86400 = 3600*24 - σε ημέρες) και παίρνουμε:
$τώρα = χρόνος(); // δεν απαιτείται
$χθες = ώρα()-3600*24;
$αύριο = ώρα()+3600*24;
$weekBefore = time() - 3600*24*7; // πριν από μία εβδομάδα
echo "Yesterday: ",date("d.m.Y", $westerday)"
Αύριο:",date("d.m.Y",$tomorrow);

PHP πώς να λάβετε μια ημερομηνία με μια συγκεκριμένη μετατόπιση (Χ ημέρες νωρίτερα/αργότερα)

Μερικές φορές χρειάζεται να μάθετε μια ημερομηνία που θα απέχει αρκετές ημέρες από την καθορισμένη. Για παράδειγμα, ο χρήστης πλήρωσε για την υπηρεσία στις 11 Φεβρουαρίου 2013 για 3 εβδομάδες. Πληροφορίες πληρωμής είναι διαθέσιμες. Μέχρι ποια ημερομηνία πληρώνεται;

Όταν μπορείτε "απλά" να προσθέσετε μερικές ημέρες και να λάβετε 13 Φεβρουαρίου, η διαδικασία δεν προκαλεί ιδιαίτερες δυσκολίες. Τι γίνεται όμως με τον διαφορετικό αριθμό ημερών σε ένα μήνα; Τι γίνεται με τα δίσεκτα έτη; Όλα έχουν ήδη εφευρεθεί πριν από εμάς - για να υπολογίσουμε την ημερομηνία από ένα γνωστό διάστημα θα χρησιμοποιήσουμε το mktime

$payment = array("day"=>11,"month"=>2,"year"=>2013);
$toDate = mktime(0,0,0,$payment["month"],$payment["day"]+3*7,$payment["year"]);
echo date("d.m.Y",$toDate); // συμπέρασμα
// σε PHP > 5.3 χρησιμοποιώντας DateInterval
date_default_timezone_set("Ευρώπη/Μόσχα");
$datetime = νέα DateTime(ημερομηνία());
$datetime->sub(new DateInterval("P7D")); // μείον 7 ημέρες

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

Φαίνεται μια απλή κατάσταση - υπάρχουν δύο ημερομηνίες, μετρήστε τον αριθμό των ημερών (μήνες και ημέρες) μεταξύ τους. Ωστόσο, μια "χειροκίνητη" υλοποίηση θα χρειαστεί λίγο χρόνο και υπάρχει πιθανότητα να χάσετε κάτι (για διασκέδαση - όσοι θέλουν να δοκιμάσουν μπορούν να αφήσουν τον κωδικό στα σχόλια). Η PHP έχει μια ενσωματωμένη συνάρτηση date_diff για τον υπολογισμό της διαφοράς μεταξύ ημερομηνιών ή ακριβέστερα Datetime::diff
$datetime1 = new DateTime("2013-05-01");
$datetime2 = new DateTime("2013-01-01");
$interval = $datetime1->diff($datetime2);
echo $interval->format("%R%a ημέρες μετά την Πρωτοχρονιά");

Η PHP μετατρέπει DDD ημέρες σε X έτη Y μήνες Z έτη

Μερικές φορές χρειάζεται να εμφανίσετε την ώρα μετά από ένα συγκεκριμένο συμβάν. Για παράδειγμα, μετά την εγγραφή πέρασε. Για ευκολία (3200 ημέρες δεν σημαίνουν πολλά), η αντίληψη μπορεί να μετατραπεί σε χρόνια και μήνες χρησιμοποιώντας τη μορφοποίηση DateInterval::format
$registerDate = new DateTime("2009-03-03");
$σήμερα = νέα DateTime();
$interval = $today->diff($registerDate);
echo "Πέρασε από την εγγραφή: ";
echo $interval->format("%a days")."\n"; // συνολικός αριθμός ημερών
ηχώ "ή ";
echo $interval->format("%m μήνες, %d ημέρες"); // μήνες, ημέρες

Μετάφραση PHP από ημερομηνία σε χρονική σήμανση - ημερομηνία ανάλυσης σε ρωσική μορφή

Μερικές φορές χρειάζεται να μετατρέψετε μια ημερομηνία σε μορφή που είναι εύκολο να διαβαστεί στη μορφή UNIX TIMESTAMP Για να αναλύσετε μια ημερομηνία με τη μορφή «2013-05-30 12:35» στα στοιχεία της (πάρτε χωριστά το έτος, ο μήνας, η ημέρα. ), μπορείτε να χρησιμοποιήσετε τη συνάρτηση date_parse. Για να μετατρέψετε απευθείας σε unix timestamp, μπορείτε να χρησιμοποιήσετε το strtotime (καθώς και παραλλαγές όπως 'τώρα', '+1 ημέρα', 'επόμενη Πέμπτη' - php.net/manual/en/datetime.formats.php):
echo strtotime("30-05-2013");
print_r (date_parse ("2013-05-30 12:35"));

Ωστόσο, για τη Ρωσία η πιο γνωστή μορφή είναι ΗΗ.ΜΜ.ΕΕΕΕ. Μπορείτε, φυσικά, να διαχωρίσετε την ημερομηνία με το σύμβολο της περιόδου, να λάβετε την ημέρα, τον μήνα, το έτος και να χρησιμοποιήσετε τη συνάρτηση mktime για να μάθετε την αντίστοιχη τιμή TIMESTAMP του UNIX. Το PHP5.3 εισήγαγε τη συνάρτηση date_parse_from_format, στην οποία μπορείτε να περάσετε μια συμβολοσειρά μορφής. Και για το PHP5.2 χρησιμοποίησα το strptime (την ύπαρξη του οποίου, όπως αποδείχθηκε, δεν γνωρίζουν όλοι, ίσως επειδή απλά δεν εφαρμόζεται για Windows: Αυτή η λειτουργία δεν εφαρμόζεται σε πλατφόρμες Windows):

$date = "05/30/2013 12:35";
$format = "d.m.Y H:i";
print_r (date_parse_from_format($format,$date));
// εναλλακτική επιλογή για PHP5.2
$format = "%d.%m.%Y %H:%M"; // διαφορετικό από αυτό που χρησιμοποιείται στη συνάρτηση ημερομηνίας
$d = strptime($date, $format);
$newDate = mktime($d["tm_hour"], $d["tm_min"], $d["tm_sec"],
$d["tm_mon"]+1, $d["tm_mday"], $d["tm_year"]+1900); // tm_mon 0-11, tm_year 1900
echo $newDate;

Επιπλέον, η συνάρτηση strptime έχει ειδικά χαρακτηριστικά - ο μήνας μετατοπίζεται κατά ένα (Ιανουάριος - 0) και το έτος είναι ο αριθμός των ετών από το 1900, δηλ. για το 2013 $d[’tm_year’] θα ισούται με 113.

Σύνδεσμοι και χρήσιμες πληροφορίες:
PHP dateTime Λειτουργίες http://www.php.net/manual/en/ref.datetime.php - λειτουργίες για εργασία με ημερομηνία
Κατηγορία PHP DateTime http://www.php.net/manual/en/class.datetime.php
PHP date_diff http://www.php.net/manual/en/function.date-diff.php
PHP strftime http://ru2.php.net/manual/en/function.strftime.php
PHP date_parse_from_format http://ru2.php.net/manual/en/function.date-parse-from-format.php

Η JavaScript είναι αποκλεισμένη στο πρόγραμμα περιήγησής σας. Ενεργοποιήστε την JavaScript για να λειτουργήσει ο ιστότοπος!

Αναπαράσταση ημερομηνίας και ώρας

Σε κατανεμημένα συστήματα όπως το Διαδίκτυο, ο χρόνος παίζει ιδιαίτερο ρόλο. Λόγω μιας μικρής διαφοράς στο ρολόι του συστήματος, ένας παίκτης Forex μπορεί να χάσει δεκάδες χιλιάδες δολάρια μέσα σε λίγα λεπτά. το σύστημα επιχειρηματικής ευφυΐας θα κάνει λάθος κάνοντας μια πρόβλεψη. Οι διακομιστές NNTP θα χάσουν σημαντικές πληροφορίες που χρειάζεται ο χρήστης κατά τη διαδικασία συγχρονισμού κ.λπ.

Η PHP περιέχει πολλές λειτουργίες για εργασία με ημερομηνία και ώρα. Τα πιο χρησιμοποιημένα είναι:

  • χρόνος()- επιστρέφει τον τρέχοντα απόλυτο χρόνο. Ο αριθμός αυτός είναι ίσος με τον αριθμό των δευτερολέπτων που έχουν περάσει από τα μεσάνυχτα της 1ης Ιανουαρίου 1970 (από την αρχή της εποχής του UNIX).
  • getdate()- διαβάζει πληροφορίες ημερομηνίας και ώρας. Επιστρέφει έναν συσχετιστικό πίνακα που περιέχει πληροφορίες για τον καθορισμένο ή τον τρέχοντα (από προεπιλογή) χρόνο. Ο πίνακας περιέχει τα ακόλουθα στοιχεία:

    Παράδειγμα 1

    Χρήση getdate() $val) echo "$key = $val
    "; ηχώ "
    Σήμερα: $d.$d.$d"; ?>

    ΑΠΟΤΕΛΕΣΜΑ ΠΑΡΑΔΕΙΓΜΑΤΟΣ 1:

    Δευτερόλεπτα = 21 λεπτά = 4 ώρες = 12 μ.μ. = 10 ημερ. = 4 δευτ. = 11 έτος = 2005 ημέρα = 313 εργάσιμες ημέρες = Πέμπτη μήνας = Νοέμβριος 0 = 1131613461 Σήμερα: 10/11/2005

  • ημερομηνία()- Μορφοποίηση ημερομηνίας και ώρας. Ορίσματα: συμβολοσειρά μορφής και απόλυτος χρόνος. Το δεύτερο όρισμα είναι προαιρετικό. Επιστρέφει μια συμβολοσειρά με τη δεδομένη ή την τρέχουσα ημερομηνία στην καθορισμένη μορφή. Η συμβολοσειρά μορφής μπορεί να περιέχει τους ακόλουθους κωδικούς:
    ένα
    ΕΝΑΠεριλαμβάνεται η ένδειξη "AM" ή "PM".
    ρεΗμέρα του μήνα (01-31)
    ρεΣυντομευμένο όνομα της ημέρας της εβδομάδας (τρία γράμματα)
    φάΌνομα πλήρους μήνα
    σολΡολόι (μορφή 12 ωρών χωρίς αρχικά μηδενικά)
    σολΡολόι (24ωρη μορφή χωρίς μηδενικά)
    ηΡολόι (μορφή 12 ωρών)
    HΡολόι (24ωρη μορφή)
    ΕγώΛεπτά (00-59)
    ιΗμέρα του μήνα χωρίς μηδενικά (1-31)
    μεγάλοΠλήρες όνομα της ημέρας της εβδομάδας
    μεγάλοΈνδειξη δίσεκτου έτους (0 ή 1)
    ΜΜήνας (01-12)
    ΜΣυντομευμένο όνομα μήνα (τρία γράμματα)
    nΜήνας (1-12)
    μικρόΔευτερόλεπτα (00-59)
    tΑριθμός ημερών σε έναν δεδομένο μήνα (από 28 έως 31)
    UΑπόλυτος χρόνος
    w
    yΈτος (δύο βαθμοί)
    ΥΈτος (τέσσερις βαθμοί)
    zΗμέρα του χρόνου (0-365)
    ΖΜετατόπιση ζώνης ώρας σε δευτερόλεπτα (-43200 έως 43200)

    Οποιεσδήποτε άλλες πληροφορίες περιλαμβάνονται στη συμβολοσειρά μορφοποίησης θα εισαχθούν στη συμβολοσειρά που επιστρέφεται. Εάν χρειάζεται να προσθέσετε χαρακτήρες στη συμβολοσειρά μορφοποίησης που είναι οι ίδιοι κωδικοί μορφής, τότε πρέπει να προηγείται μια ανάστροφη κάθετο "\". Οι χαρακτήρες που γίνονται κωδικοί μορφής όταν προστίθενται με ανάστροφη κάθετο πρέπει να προηγούνται από δύο κάθετες προς τα εμπρός. Για παράδειγμα, εάν πρέπει να προσθέσετε το "n" σε μια συμβολοσειρά, πρέπει να εισαγάγετε "\\n" καθώς το "\n" είναι χαρακτήρας νέας γραμμής.

    Παράδειγμα 2

    Χρήση ημερομηνίας()

    ΑΠΟΤΕΛΕΣΜΑ ΠΑΡΑΔΕΙΓΜΑΤΟΣ 2:

    Σήμερα: 10.11.05 13:03

  • mktime()- επιστρέφει τον απόλυτο χρόνο, ο οποίος μπορεί στη συνέχεια να χρησιμοποιηθεί με τις συναρτήσεις date() ή getdate(). Λαμβάνει έως και έξι ακέραια ορίσματα με την ακόλουθη σειρά:

    Παρακολουθώ
    λεπτά
    δευτερόλεπτα
    μήνας
    ημέρα του μήνα
    έτος

    Παράδειγμα 3

    Χρήση mktime()

    ΑΠΟΤΕΛΕΣΜΑ ΠΑΡΑΔΕΙΓΜΑΤΟΣ 3:

  • ημερομηνία ελέγχου ()- έλεγχος της ορθότητας της ημερομηνίας. Επιχειρήματα: μήνας, ημέρα, έτος. Επιστρέφει true εάν η ημερομηνία είναι σωστή, π.χ.
    μήνας - ένας ακέραιος αριθμός από 1 έως 12.
    Η ημέρα είναι ένας ακέραιος αριθμός που δεν υπερβαίνει τον συνολικό αριθμό ημερών σε έναν δεδομένο μήνα. Στην περίπτωση αυτή, τα δίσεκτα έτη επεξεργάζονται σωστά.
    Το έτος είναι ένας ακέραιος αριθμός από το 1 έως το 32767.

    Για παράδειγμα:

    Αν (!checkdate($month, 1, $year)) ( $d = getdate(); $month = $d; $year = $d; )

    Προσοχή! Η ημερομηνία μπορεί να είναι εντός ενός έγκυρου εύρους, αλλά άλλες συναρτήσεις ημερομηνίας δεν θα αποδεχτούν την τιμή. Έτσι, η mktime() δεν θα πρέπει να χρησιμοποιείται για χρόνια πριν από το 1902 και θα πρέπει να χρησιμοποιείται με προσοχή για χρόνια πριν από το 1970.

  • strftime()- σχηματισμός τοπικής ημερομηνίας και ώρας. Ορίσματα: συμβολοσειρά μορφοποίησης και απόλυτος χρόνος. Το δεύτερο όρισμα είναι προαιρετικό. Επιστρέφει μια συμβολοσειρά με τη δεδομένη ή την τρέχουσα ημερομηνία στην καθορισμένη μορφή. Σε αυτήν την περίπτωση, τα ονόματα των μηνών και των ημερών της εβδομάδας εξάγονται από τις τοπικές ρυθμίσεις που έχουν επιλεγεί χρησιμοποιώντας τη συνάρτηση Η συμβολοσειρά μορφής μπορεί να περιέχει τους ακόλουθους κωδικούς:
    %έναΣυντομευμένο όνομα της ημέρας της εβδομάδας
    %ΕΝΑΠλήρες όνομα της ημέρας της εβδομάδας
    %σιΣυντομευμένο όνομα μήνα
    %ΣΙΌνομα πλήρους μήνα
    %ντοΠροτιμώμενη μορφή ημερομηνίας και ώρας
    %ΝΤΟΑριθμός αιώνα
    %ρεΗμέρα του μήνα (1-31)
    %ΡΕΤο ίδιο με %m/%d/%y
    %μιΜήνας (1-12)
    %hΤο ίδιο με %σι
    %HΡολόι (24ωρη μορφή)
    %ΕΓΩΡολόι (μορφή 12 ωρών)
    %jΗμέρα του χρόνου (0-365)
    Μήνας (1-12)
    λεπτά
    %nΝέα γραμμή χαρακτήρα
    Περιλαμβάνεται η σημείωση "πμ" ή "μμ".
    %rΏρα με χρήση σημειογραφίας π.μ./μ.μ
    %RΏρα σε μορφή 24 ωρών
    %ΜΙΚΡΟΔευτερόλεπτα (00-59)
    %tΧαρακτήρας καρτέλας
    %TΤο ίδιο με %H:%M:%S
    %uΑριθμός ημέρας της εβδομάδας (1 - Δευτέρα, 7 - Κυριακή)
    %UΑριθμός εβδομάδας. Η αντίστροφη μέτρηση ξεκινά την πρώτη Κυριακή του χρόνου
    %VΑριθμός εβδομάδας σύμφωνα με το ISO 8601:1988. Η πρώτη εβδομάδα πρέπει να έχει τουλάχιστον τέσσερις ημέρες και η Δευτέρα θεωρείται πρώτη μέρα
    %WΑριθμός εβδομάδας. Η αντίστροφη μέτρηση ξεκινά την πρώτη Δευτέρα του χρόνου
    %wΑριθμός ημέρας της εβδομάδας (0 - Κυριακή, 6 - Σάββατο)
    Προτιμώμενη μορφή ημερομηνίας χωρίς ώρα
    Προτιμώμενη μορφή ώρας χωρίς ημερομηνία
    %yΈτος (δύο βαθμοί)
    %YΈτος (τέσσερις βαθμοί)
    %ZΖώνη ώρας (όνομα ή συντομογραφία)
    %% Σύμβολο "%"

    Οποιεσδήποτε άλλες πληροφορίες περιλαμβάνονται στη συμβολοσειρά μορφοποίησης θα εισαχθούν στη συμβολοσειρά που επιστρέφεται.

Μεταξύ των διαφόρων εργασιών προγραμματισμού, διάφοροι χειρισμοί με τιμές ημερομηνίας και ώρας είναι αρκετά συνηθισμένοι. Ένα σπάνιο αυτοματοποιημένο σύστημα, μια βάση δεδομένων, μπορεί να κάνει χωρίς να αποθηκεύει πληροφορίες σχετικά με το χρόνο μιας συγκεκριμένης διαδικασίας. Εκτός από την απλή προσθήκη μιας ημερομηνίας σε μια εγγραφή βάσης δεδομένων ή την εμφάνιση αυτής της ημερομηνίας, υπάρχουν πολλές εργασίες για την εμφάνιση αυτών των ημερομηνιών με διάφορες μορφές, τον έλεγχο του αν η τρέχουσα ώρα αντιστοιχεί σε ένα δεδομένο χρονόμετρο, τον υπολογισμό της περιόδου μεταξύ δύο ημερομηνιών και πολλά άλλα.

Για να διευκολύνεται η εργασία με ημερομηνίες, κάθε γλώσσα προγραμματισμού έχει τους δικούς της ειδικούς τύπους δεδομένων για την αποθήκευση τιμών ημερομηνίας και ώρας. Τις περισσότερες φορές αυτή είναι μια αριθμητική τιμή, είτε ακέραιος είτε τιμή κινητής υποδιαστολής.

Στην PHP, η εργασία με ημερομηνίες συναντά συχνότερα το UNIX TIMESTAMP. Εδώ ο χρόνος αποθηκεύεται ως ακέραιος αριθμός. Ο υπολογισμός του χρόνου αρχίζει την 1η Ιανουαρίου 1970. Επομένως, για παράδειγμα, η ημερομηνία και η ώρα 12/11/2014 19:40:00 θα αντιπροσωπευόταν με τον αριθμό 1418316000. Αυτός ο αριθμός δείχνει πόσα δευτερόλεπτα έχουν περάσει από την ημερομηνία μηδέν της 1ης Ιανουαρίου 1970, που ονομάζεται Εποχή Unix.

Ένα παράδειγμα σελίδας PHP που παρέχει δυνατότητες μετατροπής δεδομένων παρουσιάζεται στον ιστότοπο στην ενότητα προγραμμάτων με το πρόγραμμα "Μετατροπή μορφής ημερομηνίας και ώρας". Εδώ μπορείτε να δημιουργήσετε την επιθυμητή ημερομηνία σε μορφή UNIX TIMESTAMP, καθώς και να μεταφέρετε αυτήν τη μορφή σε μια τυπική, αναγνώσιμη από τον άνθρωπο μορφή.

Λήψη της τρέχουσας ώρας και ημερομηνίας στην PHP

Για να λάβετε την τρέχουσα ώρα διακομιστή, χρησιμοποιήστε τη λειτουργία

int time (άκυρο)

που θα επιστρέψει την τιμή σε μορφή timestamp unix.

echo time(); // εξαγωγή της τρέχουσας ώρας σε μορφή timestamp unix

Με την πρώτη ματιά, η μορφή δεν είναι πολύ βολική για τους ανθρώπους, αλλά, όπως γνωρίζετε, όσο πιο απλή είναι η παρουσίαση των δεδομένων, τόσο πιο γρήγορα ο υπολογιστής επεξεργάζεται αυτές τις τιμές. Επιπλέον, η αποθήκευση ενός αριθμού σε μια βάση δεδομένων είναι πολύ πιο οικονομική από οποιαδήποτε ειδική μορφή. Επίσης, η PHP λειτουργεί το ίδιο με την πάροδο του χρόνου και στις πλατφόρμες Unix και Windows, γεγονός που καθιστά δυνατή τη χρήση του κώδικα σε οποιαδήποτε από αυτές τις πλατφόρμες.

Μετατροπή μορφής ημερομηνίας και ώρας σε PHP

Ο απλούστερος μηχανισμός για τη μετατροπή μιας αριθμητικής τιμής ημερομηνίας σε πιο κατανοητές τιμές παρέχεται από τη συνάρτηση:

array getdate()

Επιστρέφει έναν συσχετιστικό πίνακα που περιέχει πληροφορίες ημερομηνίας. Εάν δεν έχει καθοριστεί η παράμετρος χρονικής σήμανσης, θα επιστραφεί η τρέχουσα ώρα. Αυτός ο πίνακας περιέχει τις ακόλουθες τιμές:

Ο πίνακας που προκύπτει σάς επιτρέπει να εμφανίσετε τις τιμές στην επιθυμητή μορφή:

$ημερομηνία = 1418372345;
$date_mas = getdate($date);
echo $date_mas["mday" ] . ". ". $date_mas["mon" ] . ". ". $date_mas["year" ]; // 12.12.2014


Μπορείτε επίσης να χρησιμοποιήσετε τη λειτουργία για να μετατρέψετε τη μορφή ημερομηνίας και ώρας:

ημερομηνία συμβολοσειράς (string $template [, int $unix_timestamp])

Έχει σχεδιαστεί για να λαμβάνει την τρέχουσα ημερομηνία χρονοσήμανσης unix στην απαιτούμενη μορφή. Η παράμετρος συμβολοσειράς $template καθορίζει τη μορφή εξόδου. Η παράμετρος $unix_timestamp μπορεί να χρησιμοποιηθεί για να καθορίσετε ποια χρονική τιμή θα εργαστείτε. Είναι προαιρετικό, επομένως εάν δεν έχει καθοριστεί, θα χρησιμοποιηθεί η τρέχουσα ημερομηνία και ώρα.

Η μορφή καθορίζεται από τις ακόλουθες τιμές:

ένα"πριν" και "μετά" το μεσημέρι: "πμ" ή "μμ"
ΕΝΑ"πριν" και "μετά" το μεσημέρι με κεφαλαία γράμματα: "ΠΜ" ή "ΜΜ"
ρεημέρα του μήνα με 2 ψηφία (αν είναι λιγότερο από 10, το μηδέν έρχεται πρώτο) (01 έως 31)
ρεημέρα της εβδομάδας με 3 γράμματα. Για παράδειγμα, "Δευτέρα" (Δευτέρα)
ιημέρα του μήνα, 1-2 ψηφία χωρίς αρχικά μηδενικά (από 1 έως 31)
φάόνομα του μήνα. Για παράδειγμα, "Ιανουάριος"
ηώρα, 12ωρη μορφή (01 έως 12)
Hώρα, 24ωρη μορφή (00 έως 23)
σολμορφή ώρας, 12 ωρών χωρίς μηδενικά (1 έως 12)
σολωριαία, 24ωρη μορφή χωρίς μηδενικά (0 έως 23)
Εγώλεπτά (00 έως 59)
I (κεφαλαίο i)1 εάν ισχύει η θερινή ώρα, διαφορετικά 0
μεγάλο1 εάν το έτος είναι δίσεκτο ή 0 εάν δεν είναι δίσεκτο έτος
σιώρα σε μορφή ώρας Διαδικτύου (ένα εναλλακτικό σύστημα ώρας της ημέρας) (από 000 έως 999)
Τζώνη ώρας υπολογιστή. Για παράδειγμα, MDT
l (πεζό L)ημέρα της εβδομάδας. Για παράδειγμα, "Δευτέρα"
Μμήνας, δύο ψηφία με μηδενικά (01 έως 12)
nμήνας, ένα ή δύο ψηφία χωρίς μηδενικά (από 1 έως 12)
Μσυντομευμένο όνομα του μήνα. Για παράδειγμα, "Jan"
tαριθμός ημερών στον καθορισμένο μήνα (από 28 έως 31)
μικρόδευτερόλεπτα (0 έως 59)
μικρόΑγγλικό επίθημα τακτικού αριθμού δύο γραμμάτων ("st", "nd", "rd" ή "th")
Uακέραιος αριθμός δευτερολέπτων από την έναρξη της εποχής του UNIX
yέτος, ψηφιακό, 2 ψηφία (14)
Υέτος, ψηφιακό, 4ψήφιο (2014)
zτακτικός αριθμός της ημέρας του έτους (από 0 έως 365)
Ζμετατόπιση ζώνης ώρας σε δευτερόλεπτα (-43200 έως 43200)
Νσειριακός αριθμός της ημέρας της εβδομάδας από 1 (Δευτέρα) έως 7 (Κυριακή) σύμφωνα με το πρότυπο ISO-8601, (προστέθηκε στην PHP 5.1.0)
wαύξων αριθμός της ημέρας της εβδομάδας από 0 (Κυριακή) έως 6 (Σάββατο)
Wσειριακός αριθμός της εβδομάδας του έτους σύμφωνα με το πρότυπο ISO-8601· οι εβδομάδες ξεκινούν τη Δευτέρα (προστέθηκε στην PHP 4.1.0)
οαριθμός έτους σύμφωνα με το πρότυπο ISO-8601. Έχει την ίδια έννοια με το Y, εκτός εάν ο αριθμός της εβδομάδας ISO (W) είναι από το προηγούμενο ή το επόμενο έτος. τότε θα χρησιμοποιηθεί το έτος εκείνης της εβδομάδας. (προστέθηκε στην PHP 5.1.0)
μικωδικός κλίμακας ζώνης ώρας. Για παράδειγμα: UTC, GMT, Atlantic/Azores (προστέθηκε στην PHP 5.1.0)
Οδιαφορά με την ώρα του Γκρίνουιτς, σε ώρες. Για παράδειγμα: +0200
Πδιαφορά από τη μέση ώρα του Γκρίνουιτς με άνω και κάτω τελεία μεταξύ ωρών και λεπτών. Για παράδειγμα: +02:00 (προστέθηκε στην PHP 5.1.3)
ντοημερομηνία σε τυπική μορφή ISO 8601 Για παράδειγμα, 2014-12-12T15:19:21+00:00 (προστέθηκε σε PHP 5)
rημερομηνία σε » μορφή RFC 2822 Για παράδειγμα: Πέμ., 21 Δεκεμβρίου 2000 16:01:07 +0200.
Uαριθμός δευτερολέπτων που έχουν περάσει από την αρχή της Εποχής του Unix (The Unix Epoch, 1 Ιανουαρίου 1970 00:00:00 GMT)

Όπως μπορείτε να δείτε από τη λίστα, μπορείτε να λάβετε πολλά χρήσιμα δεδομένα ημερομηνίας χρησιμοποιώντας αυτήν τη λειτουργία. Για παράδειγμα:

$ημερομηνία = 1418372345; // αρχική ημερομηνία και ώρα 12/12/2014 11:19:05

echo date("d.m.Y" , $date); // 12.12.2014 (ημερομηνία)
echo date("H:i:s" , $date); // 11:19:05 (ώρα)
echo date("H:i" , $date); // 11:19 (ώρα)
echo date("t" , $date); // 31 (αριθμός ημερών σε ένα μήνα)
echo date("z" , $date); // 345 (τακτικός αριθμός της ημέρας του έτους)
echo date("l dS \of F Y h:i:s A" , $date); // Παρασκευή 12 Δεκεμβρίου 2014 11:19:05 π.μ

Οι άλλοι χαρακτήρες που περιλαμβάνονται στο μοτίβο θα εκτυπωθούν όπως είναι στη γραμμή. Εάν πρέπει να εισαγάγετε έναν χαρακτήρα που χρησιμοποιείται σε μια συνάρτηση ως κωδικός μορφής, ο χαρακτήρας "\" εισάγεται μπροστά τους. Για την τιμή "\n" (χαρακτήρας νέας γραμμής), πρέπει να καθορίσετε "\\n". Έτσι, μπορείτε να εξάγετε ένα ολόκληρο μήνυμα που περιέχει πληροφορίες ημερομηνίας και ώρας:

ημερομηνία ηχούς ( "Σήμερα είναι η 2η ημέρα του υότου έτους", $date); // Σήμερα είναι η 345η ημέρα του 2014

Μετατροπή ημερομηνίας και ώρας σε μορφή χρονικής σφραγίδας

Για να μετατρέψετε μια ημερομηνία από μια τυπική μορφή σε μια αριθμητική τιμή χρονικής σφραγίδας, χρησιμοποιήστε τη συνάρτηση:

int mktime(]]]]]]

Η συνάρτηση mktime() επιστρέφει την τιμή χρόνου Unix που αντιστοιχεί στην ημερομηνία και ώρα που καθορίζονται από τα ορίσματά της. Για παράδειγμα:

$my_date = mktime(10, 30, 0, 12, 12, 2014);

Θα πρέπει να προσέχετε τη σειρά των ορισμάτων της συνάρτησης: ώρες, λεπτά, δευτερόλεπτα, μήνας, ημέρα, έτος.

Εκτός από την απλή δημιουργία μιας τιμής ημερομηνίας σε μια χρονική σήμανση, η συνάρτηση mktime() μπορεί να χρησιμοποιηθεί για την αριθμητική απόδοση με ημερομηνίες. Για να το κάνετε αυτό, μπορείτε απλώς να εισαγάγετε τα απαραίτητα ορίσματα. Για παράδειγμα, εάν καθορίσετε τον 14ο μήνα, τότε στην τελική τιμή ο μήνας θα είναι ο 2ος και η τιμή του έτους θα αυξηθεί κατά ένα:

$my_day = 12;
$my_month = 12;
$my_year = 2014;

$new_date = mktime(0, 0, 0, $my_month + 5, $my_day, $my_year);

echo date("d.m.Y" , $new_date); // 05/12/2015 (ημερομηνία)

Μπορείτε να κάνετε το ίδιο με άλλες παραμέτρους.

Έλεγχος εγκυρότητας ημερομηνίας στην PHP

Όταν εργάζεστε με ημερομηνίες, ειδικά όταν δημιουργείτε μια ημερομηνία χρησιμοποιώντας τη συνάρτηση mktime() που προτείνεται παραπάνω, είναι απαραίτητο να λάβετε υπόψη την ορθότητα της καταχωρημένης ημερομηνίας. Για να γίνει αυτό, η PHP χρησιμοποιεί τη συνάρτηση:

ημερομηνία ελέγχου bool (int μήνα, int ημέρα, int έτος)

Επιστρέφει true εάν η ημερομηνία που καθορίζεται από τα ορίσματα είναι σωστή. αλλιώς επιστρέφει ψευδής. Η ημερομηνία θεωρείται σωστή εάν:

Έτος στην περιοχή από 1 έως 32767.

Ο μήνας κυμαίνεται από 1 έως 12.

Η ημέρα για έναν δεδομένο μήνα, λαμβάνοντας υπόψη τα δίσεκτα έτη, υποδεικνύεται σωστά.

Παράδειγμα ελέγχου ημερομηνίας:

$my_day = 32;
$my_month = 12;
$my_year = 2014;

if (!checkdate($my_month, $my_day, $my_year))
ηχώ "Σφάλμα: η ημερομηνία είναι λανθασμένη";

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

Βασική λειτουργία που σχετίζεται με ημερομηνία και ώρα σε PHP, - Αυτό συνάρτηση time()., το οποίο επιστρέφει τον αριθμό των δευτερολέπτων που έχουν περάσει από τότε μεσάνυχτα 01/01/1970(η γέννηση της εποχής Unix):

echo time();
?>

Εκτελώντας αυτό το σενάριο, θα μάθετε πόσα δευτερόλεπτα έχουν περάσει από τότε μεσάνυχτα 01/01/1970μέχρι τη στιγμή της κλήσης συναρτήσεις time().στο σενάριο σου.

Φυσικά, εκτός από αυτή τη βασική λειτουργία, η οποία υπάρχει σε όλες τις γλώσσες προγραμματισμού όπου μπορείτε εργασία με ημερομηνία και ώρα(τουλάχιστον από αυτές που ξέρω) υπάρχει μια άλλη συνάρτηση που ονομάζεται getdate():

$datetime = getdate();
foreach ($datetime ως $k=>$v)
ηχώ "$k - $v
";
?>

Εκτελώντας αυτό το σενάριο, θα δείτε ένα σύνολο πλήκτρων στον πίνακα και τις αντίστοιχες τιμές τους (την ίδια στιγμή, επαναλάβαμε την κατασκευή για κάθε). Νομίζω ότι τώρα δεν θα σας είναι δύσκολο να μάθετε δεδομένα σχετικά με ημερομηνία και ώρα. Για παράδειγμα, για να εμφανίσετε την τρέχουσα ώρα, θα γράψετε τον ακόλουθο κώδικα:

$datetime = getdate();
echo $datetime["hours"]..":".$datetime["minutes"]..":".$datetime["seconds"];
?>

Επίσης συναρτήσεις getdate().υπάρχει μια προαιρετική παράμετρος που σημαίνει τον αριθμό των δευτερολέπτων που έχουν περάσει από τότε μεσάνυχτα 01/01/1970. Είναι φτιαγμένο έτσι ώστε αυτή η συνάρτηση να μπορεί να επιστρέψει όχι μόνο την τρέχουσα ώρα και ημερομηνία, αλλά, γενικά, οποιαδήποτε:

$datetime = getdate(152353232);
echo $datetime["year"];
?>

Ως αποτέλεσμα, θα δείτε 1974έτος.

Υπάρχει επίσης συνάρτηση date().. Συνιστώ να δείτε την περιγραφή του στο βιβλίο αναφοράς, καθώς αυτή η συνάρτηση παίρνει μια πολύ περίπλοκη παράμετρο που καθορίζει τη μορφή εξόδου ημερομηνίας. Υπάρχουν λίγο περισσότερα από 30 στοιχεία μορφοποίησης. Και στο παρακάτω παράδειγμα θα δώσω μερικά από αυτά και θα εξετάσω τα υπόλοιπα στο βιβλίο αναφοράς, γιατί δεν χρειάζεται να τα απομνημονεύσετε, αλλά καλό είναι να εξοικειωθείτε με αυτά. Αλλά είναι απαραίτητο να γνωρίζουμε την αρχή της χρήσης τους και το ακόλουθο παράδειγμα σχετικά με αυτό:

echo date("Today d.m.Y H:i:s");
?>

Ως αποτέλεσμα, θα δείτε κάτι σαν αυτό: " Σήμερα 15/11/2010 21:44:24". Επίσης συναρτήσεις date().Υπάρχει επίσης μια δεύτερη προαιρετική παράμετρος που καθορίζει χρονική σφραγίδα, ακριβώς την τιμή ίση με τον αριθμό των δευτερολέπτων που έχουν περάσει από τότε μεσάνυχτα 01/01/1970. Παράδειγμα χρήσης της δεύτερης παραμέτρου:

echo date("Μια φορά κι έναν καιρό υπήρχε d.m.Y H:i:s", 5393235329);
?>

Υπάρχει επίσης συνάρτηση gmdate()., που είναι ένα πλήρες ανάλογο συναρτήσεις date()., Αλλά συνάρτηση gmdate().δείχνει την ώρα όχι σύμφωνα με τη ζώνη ώρας του διακομιστή στον οποίο εκτελείται το σενάριο, αλλά σύμφωνα με Γκρήνουιτς. Προφανώς, χρησιμοποιώντας αυτήν τη λειτουργία πρέπει να αποθηκεύσετε όλες τις πληροφορίες σχετικά με την ημερομηνία και την ώρα που βλέπει ο χρήστης και κατά την έξοδο πρέπει να προσαρμόζεστε στη ζώνη ώρας κάθε χρήστη (ιδανικά, φυσικά):

echo gmdate ("Τώρα στο Greenwich D M j H:i:s T Y")
?>

Ως αποτέλεσμα, θα δείτε κάτι σαν αυτό: " Δευτ. 15 Νοεμβρίου 18:52:45 GMT 2010"Φυσικά, θα δείτε διαφορετική ημερομηνία, αλλά σε παρόμοια μορφή. Σας συνιστώ επίσης ανεπιφύλακτα να μπείτε στο βιβλίο αναφοράς και απλώς να εξοικειωθείτε με τα άλλα στοιχεία ημερομηνίας και ώρας στο PHP(Έδωσα μόνο ένα τρίτο), αφού συναρτήσεις date() και gmdate().- αυτός είναι ο πιο εύκολος και γρήγορος τρόπος λάβετε ημερομηνία και ώρασχεδόν σε οποιαδήποτε μορφή.

Ας δούμε μερικούς από τον κώδικα από μια πραγματική ιστοσελίδα και ας δημιουργήσουμε το πρώτο μας σενάριο PHP, δηλαδή, θα εμφανίσουμε την ημερομηνία και την τρέχουσα ώρα στον ιστότοπό μας. Αυτό το σενάριο χρησιμοποιείται αρκετά συχνά σε ιστότοπους και νομίζω ότι θα είναι χρήσιμο σε πολλούς.

Ας δημιουργήσουμε ένα άλλο αρχείο php και ας ονομάσουμε αυτό το αρχείο time.php. Το μελετήσαμε νωρίτερα, αν το ξεχάσατε, επαναλάβετε.

Έτσι δημιουργήσαμε το αρχείο time.php και τοποθετήσαμε αυτό το αρχείο στον φάκελο myphp που δημιουργήθηκε προηγουμένως στο . Μελετήσαμε αυτό το θέμα στο μάθημα

Ανοίξτε τον κώδικα του αρχείου time.php και ανάμεσα στις ετικέτες Και

γράψε τον παρακάτω κώδικα: Λίστα 1:

Λίστα 1.

Σήμερα:

Τρέχουσα ώρα

Εκκινούμε τον Τοπικό διακομιστή, πληκτρολογούμε τη διεύθυνση στη γραμμή διευθύνσεων του προγράμματος περιήγησης http://localhost/myphp/time.phpκαι πατήστε Enter. Και βλέπουμε αυτή την εικόνα:

Λάβετε υπόψη ότι σε αυτήν την περίπτωση εμφανίζεται η τρέχουσα ώρα διακομιστή,εκείνοι. εάν, για παράδειγμα, ο διακομιστής στον οποίο «ζει» ο ιστότοπός σας βρίσκεται σε άλλη χώρα και η τρέχουσα ώρα διαφέρει από τη Μόσχα, τότε η τιμή ώρας που εμφανίζεται θα διαφέρει επίσης από τη Μόσχα.

Ας δούμε τον κώδικα Καταχώρηση 1. Κανονικές ετικέτες κειμένου " Σήμερα" Και " Τρέχουσα ώρα" δεν υποβάλλονται σε επεξεργασία από τον προεπεξεργαστή PHP και εξάγονται ως "είναι". Αντί για αυτές τις καταχωρήσεις, μπορείτε να γράψετε οποιοδήποτε κείμενο, για παράδειγμα απλώς ημερομηνίαή χρόνοςκαι τα λοιπά.

Και εδώ είναι ο κώδικας php που περικλείεται σε περιγραφείςΠριν δοθεί στο πρόγραμμα περιήγησης, υποβάλλεται σε επεξεργασία από την PHP.

Όπως πιθανότατα έχετε ήδη καταλάβει, η συνάρτηση ημερομηνίας στην PHP υπεύθυνος για την ημερομηνία και την ώρα εξόδου. Οι τιμές εμφάνισης ημερομηνίας και ώρας εμφανίζονται σε παρένθεση. Υπάρχουν πολλές τέτοιες τιμές στην PHP και θα αφιερώσουμε το επόμενο ξεχωριστό μάθημα σε αυτήν την ανάλυση και μελέτη όλων των πιθανών τιμών.

Ο τελεστής ηχούς μεταφράζεται ως αποσύρω, στην περίπτωση αυτή εννοούμε εμφάνιση στην οθόνη της οθόνης ΗμερομηνίαΚαι Ώρα διακομιστή.

Το ίδιο αποτέλεσμα (εμφάνιση στο πρόγραμμα περιήγησης) μπορεί να επιτευχθεί τοποθετώντας ολόκληρο το σενάριο μέσα σε περιγραφείς PHP. Κοίτα Λίστα 2:

Λίστα 2.

echo "Σήμερα:" ;
ημερομηνία ηχούς ("j F Y");
ηχώ "Τρέχουσα ώρα" ;
echo date ("H:i:s");
?>

Όλα τα στοιχεία κειμένου που προορίζονται για έξοδο πρέπει να περικλείονται σε εισαγωγικά. Οι συμβολοσειρές κειμένου μπορούν να περικλείονται είτε σε μονά είτε σε διπλά εισαγωγικά, θα μιλήσουμε για τη διαφορά αργότερα. Δημοσιεύσεις:

ηχώ "Σήμερα" ;

ηχώ "Σήμερα" ;

είναι εντελώς ισοδύναμα και θα εμφανίζονται το ίδιο.

Ο χαρακτήρας διαστήματος πριν από το εισαγωγικό κλεισίματος χρησιμοποιείται για να διαχωρίσει την έξοδο της συνάρτησης ημερομηνίας από το περιβάλλον κείμενο. Όλες οι εντολές στην PHP διαχωρίζονται πάντα με ένα ερωτηματικό.

Για να εμφανίσετε την Ημερομηνία και την Ώρα στον ιστότοπο, εισαγάγετε τον κωδικό Λίστα 1ή Λίστα 2στο σωστό μέρος στην ιστοσελίδα σας. Για να δώσετε στις επιγραφές (Ημερομηνία και ώρα) ένα γενικό στυλ σχεδίασης για τον ιστότοπο, μπορείτε να χρησιμοποιήσετε.

ΥΣΤΕΡΟΓΡΑΦΟ.



. Λέσχη υπολογιστών του Oleg Shein.

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: