Forum und email

mktime

(PHP 4, PHP 5)

mktime — Επιστρέφει το UNIX timestamp για μία δοσμένη ημερομηνία

Περιγραφή

int mktime ([ int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]] )

Προσοχή: Παρατηρείστε την περίεργη σειρά των ορισμάτων, η οποία διαφέρει από αυτήν μίας συνήθους κλήσης της συνάρτησης του 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));
?>
H Year μπορεί να είναι ένας αριθμός 2 ή 4 ψηφίων, μεταξύ 0-69, που αντιστοιχεί στην περίοδο 2000-2069, ή 70-99, που αντιστοιχεί στην περίοδο 1970-1999 (στα συστήματα τα οποία η time_t είναι ένας signed integer των 32bit, όπως είναι το σύνηθες σήμερα, το έγκυρο πεδίο της year είναι κάπου μεταξύ 1901 και 2038).

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).

Ανατρέξτε επίσης στις: date() και time().