VI. Функции Даты/Времени

Содержание
checkdate
date
strftime
getdate
gmdate
mktime
gmmktime
time
microtime

checkdate

checkdate -- проверяет правильность даты/времени

Описание

int checkdate(int month, int day, int year);

Возвращает true если данная дата правильна, иначе false. Проверяет правильность даты, заданной аргументами. Дата считается правильной, если:

date

date -- формат локального времени/даты

Описание

string date(string format, int timestamp);

Возвращает строку, отформатированную согласно данной строке и используя данную временную метку или текущее локальное время, если не задана временная метка.

В фоматной строке должны использоваться следующие символы:

Нераспознанные символы в форматной строке будут печататься как есть.

Пример 1. Пример date()

print(date( "l dS of F Y h:i:s A" ));
print("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000)));

Функции date() и mktime() возможно использовать вместе для того, чтобы найти даты в будущем или прошлом.

Пример 2.Пример функций date() и mktime()

$tomorrow  = mktime(0,0,0,date("m")  ,date("d")+1,date("Y"));
$lastmonth = mktime(0,0,0,date("m")-1,date("d"),  date("Y"));
$nextyear  = mktime(0,0,0,date("m"),  date("d",   date("Y")+1);

Для того, чтобы отформатировать даты на других языках, Вы должны использовать функции setlocale() и strftime()

См.также gmdate() and mktime().

strftime

strftime -- форматирует локальное время согласно установкам locale

Описание

string strftime(string format, int timestamp);

Возвращает строку, отформатированную согласно данной форматной строке и используя данную временную метку или текущее локальное время, если метка не задана. Названия месяцев и недель и другие, зависящие от языка строки, зависят от текущего locale, устанавливающегося с помощью setlocale().

В форматной строке следует использовать следующие спецификаторы преобразований:

Пример 1. Пример функции strftime()

setlocale ("LC_TIME", "C");
print(strftime("%A in Finnish is "));
setlocale ("LC_TIME", "fi");
print(strftime("%A, in French "));
setlocale ("LC_TIME", "fr");
print(strftime("%A and in German "));
setlocale ("LC_TIME", "de");
print(strftime("%A.\n"));
Пример будет работать, если у вас установлены соответствующие locale.

См.также setlocale() и mktime().

getdate

getdate -- получает информацию о дате/времени

Описание

array getdate(int timestamp);

Возвращает ассоциативный массив, содержащий информацию о дате со следующими элементами:

gmdate

gmdate -- форматирует GMT/CUT время/дату

Описание

string gmdate(string format, int timestamp);

Аналогична функции date() за исключением того, что время возвращается в Гринвичском формате Greenwich Mean Time (GMT). Например, при запуске в Финляндии (GMT +0200), первая строка ниже напечатает "Jan 01 1998 00:00:00", в то время как вторая строка напечатает "Dec 31 1997 22:00:00".

Пример 1. пример gmdate()

echo date( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );
echo gmdate( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );

См.также date(), mktime() и gmmktime().

mktime

mktime -- получает временную метку UNIX для даты

Описание

int mktime(int hour, int minute, int second, int month, int day, int year);

Предупреждение: Обратите внимание на необычный порядок аргументов, который отличается от порядка аргументов в вызове функции mktime() из UNIX, и который нехорошо ведет себя при неправильно заданных параметрах (см.ниже). Это очень часто встречающаяся ошибка в скриптах.

Возвращает временную метку Unix согласно данным аргументам. Эта временная метка является целым числом, равным количеству секунд между эпохой Unix (1 Января 1970) и указанным временем.

Аргументы могут быть опущены с права налево; каждый опущенный таким образом аргумент будет установлен в текущую величину согласно локальной дате и времени.

MkTime is useful for doing date arithmetic and validation, as it MkTime полезена при арифметических дейтсвиях с датой и ее проверкой, она будет автоматически вычислять корректную величину для вешедших за границы параметров. Например, каждая из следующих строк возвращает строку "Jan-01-1998".

Пример 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) );

См.также date() и time().

gmmktime

gmmktime -- получает временную метку UNIX для даты в GMT

Описание

int gmmktime(int hour, int minute, int second, int month, int day, int year);

Идентична mktime() за исключением передаваемых параметров, представляющих дату в GMT.

time

time -- возвращает текущую временную метку UNIX

Описание

int time(void);

Возвращает текущее время, измеренное в числе секунд с эпохи Unix (1 Января 1970 00:00:00 GMT).

См.также date().

microtime

microtime -- возвращает текущую временную метку UNIX в микросекундах

Описание

string microtime(void);

Возвращает строку "msec sec" где sec текущее время, измеренное в числе секунд с эпохи Unix (0:00:00 1 Января, 1970 GMT), а msec - это часть в микросекундах. Эти функции доступны только в операционных системах, поддерживающих системный вызов gettimeofday().

См.также time().