Функции за дата и час
PHP Manual

mktime

(PHP 4, PHP 5)

mktimeВзима Unix времеви отпечатък за дата

Описание

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

Връща Unix времеви отпечатък (timestamp), който отговаря на подадените аргументи. Този timestamp е голямо цяло число (long integer), съдържащ броя секунди между Unix Епохата (1 януари 1970 00:00:00 GMT) и указаното време.

Аргументите могат да бъдат пропускани от дясно на ляво; така на всеки пропуснат аргумент ще бъде присвоена текущата стойност, съгласно локалното време и дата.

Параметри

hour

Стойността за часа.

minute

Стойността за минутата.

second

Стойността за секундите.

month

Стойността за месеца.

day

Стойността за деня.

year

Стойността за годината може да бъде число с две или четири цифри, като стойностите между 0 и 69 се приемат за години между 2000 и 2069, а стойности между 70 и 100 за години между 1970 и 2000. На системи при които time_t е 32 битово цяло число със знак, каквито са повечето съвременни системи, валидните стойности за year са между 1901 и 2038, въпреки че, това ограничение е преодоляно от PHP 5.1.0.

is_dst

Този параметър може да бъде установен в 1, ако времето е през лятното часово време (DST), 0 ако не е или -1 (по подразбиране) ако не е известно дали времето е през лятното часово време или не. Ако не е известно, PHP ще направи опит да го открие. Това може да предизвика неочаквани (но не и неправилни) резултати. Някои времена се считат за невалидни ако лятното часово време е включено на системата на която е стартирано PHP или ако параметъра is_dst е установен в 1. Ако лятното часово време е включено, като например в 2:00, всички времена между 2:00 и 3:00 ще са невалидни и функция mktime() ще върне недефинирана (обикновено отрицателна) стойност. Някои системи (като Solaris 8) включват лятното часово време в полунощ, така че часът 0:30 от денят при включено лятно часово време ще се изчислява като 23:30 от предишния ден.

Забележка: От PHP 5.1.0, този параметър е непрепоръчителен. В резултат на това, вместо него трябва да се използват новите възможности за манипулиране на часовите зони.

Връщани стойности

mktime() връща Unix timestamp на подадените аргументи. Ако аргументите са невалидни, функцията ще върне FALSE (до PHP 5.1 връщаше -1).

Грешки/Изключения

Всяко извикване на функция за дата и час ще генерира E_NOTICE , ако часовият пояс не е валиден, и/или E_STRICT съобщение ако се използват настройките на системата или променливата на обкръжението TZ. Вж. също date_default_timezone_set()

Дневник на промените

Версия Описание
3.0.10 Беше добавен параметърът is_dst
5.1.0 Параметърът is_dst стана непрепоръчителен. Функцията връща FALSE при грешка, вместо -1. Функцията приема година, месец и ден предадени като нули.
5.1.0

Вече генерира E_STRICT и E_NOTICE грешки за часовият пояс.

Примери

Example #1 Пример за mktime()

mktime() е добра за аритметика и валидиране на дати, защото автоматично изчислява коректната стойност за входящи данни, които са извън обхвата. Например, всеки от следните редове връща низа: "Jan-01-1998".

<?php
echo date("M-d-Y"mktime(00012321997));
echo 
date("M-d-Y"mktime(0001311997));
echo 
date("M-d-Y"mktime(000111998));
echo 
date("M-d-Y"mktime(0001198));
?>

Example #2 Последния ден на следващия месец

Последният ден на всеки месец, може да бъде изразен като ден "0" от следващия месец, а не като ден -1. И двата примера по-долу ще изведат низа "The last day in Feb 2000 is: 29".

<?php
$lastday 
mktime(000302000);
echo 
strftime("Last day in Feb 2000 is: %d"$lastday);
     
$lastday mktime(0004, -312000);
echo 
strftime("Last day in Feb 2000 is: %d"$lastday);
?>

Бележки

Внимание

До PHP 5.1.0, отрицателни timestamp стойности не се поддържаха под никоя версия на Windows и някои други системи. По тази причиня обхвата на валидните стойности за представяне на година бяха ограничено от 1970 до 2038.

Вж. също


Функции за дата и час
PHP Manual