time( ) - возвращает текущее абсолютное время. Это число равно
количеству секунд, которое прошло с полуночи 1 января 1970 года
(с начала эпохи UNIX).
getdate( ) - считывает информацию о дате и времени. Возвращает
ассоциативный массив, содержащий информацию по заданному или по текущему
(по умолчанию) времени. Массив содержит следующие элементы:
seconds | Секунды (0-59) | minutes | Минуты (0-59) | hours | Часы (0-23) | mday | День месяца (1-31) | wday | День недели (0-6), начиная с воскресенья | mon | Месяц (1-12) | year | Год | yday | День года (0-365) | weekday | Название дня недели (например, Friday) | month | Название месяца (например, January) | 0 | Абсолютное время |
Пример 1
<html> <head> <title>Использование getdate()</title> </head> <body> $d = getdate(); // использовано текущее время foreach ( $d as $key => $val ) echo "$key = $val "; echo "Сегодня: $d[mday].$d[mon].$d[year]"; ?> </body> </html>
РЕЗУЛЬТАТ ПРИМЕРА 1:
seconds = 21
minutes = 4
hours = 12
mday = 10
wday = 4
mon = 11
year = 2005
yday = 313
weekday = Thursday
month = November
0 = 1131613461 Сегодня: 10.11.2005
date( ) - форматирование даты и времени. Аргументы: строка формата
и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной
или текущей датой в указанном формате.
Строка формата может содержать следующие коды:
a | Включено обозначение "am" или "pm" | A | Включено обозначение "AM" или "PM" | d | День месяца (01-31) | D | Сокращенное название дня недели (три буквы) | F | Полное название месяца | g | Часы (12-часовой формат без ведущих нулей) | G | Часы (24-часовой формат без ведущих нулей) | h | Часы (12-часовой формат) | H | Часы (24-часовой формат) | i | Минуты (00-59) | j | День месяца без ведущих нулей (1-31) | l | Полное название дня недели | L | Признак високосного года (0 или 1) | m | Месяц (01-12) | M | Сокращенное название месяца (три буквы) | n | Месяц (1-12) | s | Секунды (00-59) | t | Количество дней в данном месяце (от 28 до 31) | U | Абсолютное время | w | Номер дня недели (0 - воскресенье, 6 - суббота) | y | Год (два разряда) | Y | Год (четыре разряда) | z | День года (0-365) | Z | Смещение часового пояса в секундах (от -43200 до 43200) |
Любая другая информация, включенная в строку формата, будет вставлена в
возвращаемую строку. Если в строку формата нужно добавить символы, которые
сами по себе являются кодами формата, то перед ними надо поставить
обратную косую черту "". Символы, которые становятся кодами формата при
добавлении к ним обратной косой, нужно предварять двумя косыми. Например,
если необходимо добавить в строку "n", то надо ввести "
", поскольку
"
" является символом новой строки.
Пример 2
<html> <head> <title>Использование date()</title> </head> <body> echo date( "Сегодня d.m.y H:i" ); ?> </body> </html>
РЕЗУЛЬТАТ ПРИМЕРА 2:
Сегодня: 10.11.05 13:03
mktime( ) - возвращает абсолютное время, которое затем можно
использовать с функциями date() или getdate(). Принимает до
шести целочисленных аргументов в следующем порядке:
часы минуты секунды месяц день месяца год
Пример 3
<html> <head> <title>Использование mktime()</title> </head> <body> echo date( "j of F Y, a\t g.i a, l", mktime( 13, 30, 0, 1, 22, 1971 ) ); ?> </body> </html>
РЕЗУЛЬТАТ ПРИМЕРА 3:
22 of January 1971, at 1.30 pm, Friday
checkdate( ) - проверка правильности даты.
Аргументы: месяц, день, год. Возвращает true, если дата правильная,
т.е. месяц - целое число от 1 до 12; день - целое число, не превышающее общего количества дней в данном месяце.
При этом високосные годы обрабатываются корректно; год - целое число от 1 до 32767.
Например:
if ( !checkdate( $month, 1, $year ) ) { $d = getdate(); $month = $d[mon]; $year = $d[year]; }
Внимание! Дата может находиться в допустимом диапазоне, но остальные
функции работы с датами не примут это значение.
Так, нельзя использовать mktime() для годов до 1902, а также
следует использовать ее осторожно для годов до 1970.
strftime( ) - формирование локальной даты и времени.
Аргументы: строка формата и абсолютное время. Второй аргумент необязателен.
Возвращает строку с заданной или текущей датой в указанном формате.
При этом названия месяцев и дней недели извлекается из локали,
выбранной с помощью функции setlocate( ) Строка формата может содержать следующие коды:
%a | Сокращенное название дня недели | %A | Полное название дня недели | %b | Сокращенное название месяца | %B | Полное название месяца | %c | Предпочтительный формат даты и времени | %C | Номер века | %d | День месяца (1-31) | %D | То же, что и %m/%d/%y | %e | Месяц (1-12) | %h | То же, что и %b | %H | Часы (24-часовой формат) | %I | Часы (12-часовой формат) | %j | День года (0-365) | %m | Месяц (1-12) | %M | Минуты | %n | Символ новой строки | %p | Включено обозначение "am" или "pm" | %r | Время с использованием a.m./p.m.-нотации | %R | Время в 24-часовом формате | %S | Секунды (00-59) | %t | Символ табуляции | %T | То же, что и %H:%M:%S | %u | Номер дня недели (1 - понедельник, 7 - воскресенье) | %U | Номер недели. Отсчет начинается с первого воскресенья года | %V | Номер недели по ISO 8601:1988. Первая неделя должна иметь не менее четырех дней, а понедельник считается первым днем | %W | Номер недели. Отсчет начинается с первого понедельника года | %w | Номер дня недели (0 - воскресенье, 6 - суббота) | %x | Предпочтительный формат даты без времени | %X | Предпочтительный формат времени без даты | %y | Год (два разряда) | %Y | Год (четыре разряда) | %Z | Часовой пояс (имя или сокращение) | %% | Символ "%" |
Любая другая информация, включенная в строку формата, будет вставлена в
возвращаемую строку.
Пример 4
<html> <head> <title>Использование strftime()</title> </head> <body> echo strftime("%A %d %B %Y %H:%M "); error_reporting(E_ALL & ~E_WARNING); setlocale('LC_ALL',''); echo strftime("Сегодня %A %d %B %Y %X "); echo strftime("%Z "); ?> </body> </html>
РЕЗУЛЬТАТ ПРИМЕРА 4:
Tuesday 15 November 2005 13:11
Сегодня вторник 15 Ноябрь 2005 13:11:14
Московское время (зима)
Еще примеры:
date("l dS of F Y h:i:s A") :
Saturday 25th 2009f July 2009 01:22:24 PM
date("Сегодня d.m.Y") :
Сегодня 25.07.2009
date("Этот файл датирован d.m.Y", filectime(__FILE__)) :
Этот файл датирован 15.02.2009
// Активизируем текущую локаль (иначе дата будет на английском). setlocale(LC_ALL, ''); // Выводим 2 предложения. echo strftime("%B %Y года, %d число. Был %A, часы показывали %H:%M.");
July 2009 года, 25 число. Был Saturday, часы показывали 13:22.
Очень интересное решение по нахождению вчерашнего дня написал Bermuda с PHP Club:
$time = strtotime("-1 day"); $fecha = date("Y-m-d", $time); |