mktime
(PHP 4, PHP 5)
mktime — Επιστρέφει το UNIX timestamp για μία δοσμένη ημερομηνία
Περιγραφή
Προσοχή: Παρατηρείστε την περίεργη σειρά των ορισμάτων, η οποία διαφέρει από αυτήν μίας συνήθους κλήσης της συνάρτησης του UNIX, mktime(), και η οποία δεν είναι κατάλληλη όταν παραλείπονται παράμετροι από δεξιά προς τα αριστέρα. Είναι ένα σύνηθες λάθος να μπερδεύονται αυτές οι τιμές σε ένα script.
Επιστρέφει το Unix timestamp που αντιστοιχεί στα δοθέντα ορίσματα. Αυτό το timestamp είναι ένας long integer που περιέχει το πλήθος των δευτερολέπτων από την Unix Epoch (January 1 1970) μέχρι την ώρα που καθορίστηκε.
Ορίσματα μπορούν να παραλείπονται με σειρά από τα δεξιά προς τα αριστερά. Οποιαδήποτε ορίσματα παραλείπονται θα τεθούν στις τρέχουσες τιμές της τοπικής ημερομηνίας και ώρας.
H is_dst μπορεί να τεθεί στο 1 εάν η ώρα είναι θερινή, 0 εάν δεν είναι, ή -1 (το προκαθορισμένο) εάν είναι άγνωστο το που ανήκει. Εάν είναι άγνωστο, η PHP προσπαθεί να το υπολογίσει από μόνη της. Αυτό μπορεί να προκαλέσει απρόοπτα (αλλά όχι λανθασμένα) αποτελέσματα.
Note: Η is_dst προστέθηκε στην έκδοση 3.0.10.
Η mktime() είναι χρήσιμη για την υλοποίηση αριθμητικής ημερομηνιών και ελέγχου εγκυρότητας, καθώς θα υπολογίσει αυτόματα τη σωστή τιμή για out-of-range input. Για παράδειγμα, κάθε μία από τις ακόλουθες γραμμές παράγει το string "Jan-01-1998".
Example#1 Παραδείγματα της mktime()
<?
echo date ("M-d-Y", mktime (0,0,0,12,32,1997));
echo date ("M-d-Y", mktime (0,0,0,13,1,1997));
echo date ("M-d-Y", mktime (0,0,0,1,1,1998));
echo date ("M-d-Y", mktime (0,0,0,1,1,98));
?>
Note: Windows Αρνητικά timestamp δεν υποστηρίζονται από οποιαδήποτε γνωστή έκδοση των Windows. Έτσι, το εύρος των έγκυρων χρόνων συμπεριλαμβάνουν μόνο τα 1970 μέχρι 2038.
Η τελευταία μέρα οποιουδήποτε δοσμένου μήνα μπορεί να εκφραστεί σαν η ημέρα "0" του επόμενου μήνα, και όχι η ημέρα -1. Και τα δύο ακόλουθα παραδείγματα θα θα παράξουν το string "The last day in Feb 2000 is: 29".
Example#2 Τελευταία του επόμενου μήνα
<?
$lastday = mktime (0,0,0,3,0,2000);
echo strftime ("Last day in Feb 2000 is: %d", $lastday);
$lastday = mktime (0,0,0,4,-31,2000);
echo strftime ("Last day in Feb 2000 is: %d", $lastday);
?>
Η ημερομηνία με τις year, month και day να είναι μηδέν, θεωρείται νόμιμη (αλλιώς θα θεωρούνταν ως 30.11.1999, το οποίο θα ήταν μία strange behavior).