Функция date выводит дату в заданном формате.

Синтаксис

date(формат, [момент времени в формате timestamp]);

Первым параметром функция принимает формат, а вторым необязательным параметром - момент времени в формате timestamp.

Если второй параметр не указан - возьмется текущий момент времени, если указан - то заданный.

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

Функция принимает следующие команды (заглавные буквы отличаются от обычных, обратите внимание):

  • U – количество секунд, прошедших с 1 января 1970 года (то есть timestamp).
  • z – номер дня от начала года.
  • Y – год, 4 цифры.
  • y - год, две цифры.
  • m – номер месяца (с нулем спереди).
  • n – номер месяца без нуля впереди.
  • d – номер дня в месяце, всегда две цифры (то есть первая может быть нулем).
  • j – номер дня в месяце без предваряющего нуля.
  • w – день недели (0 - воскресенье, 1 - понедельник и т.д.).
  • h – часы в 12-часовом формате.
  • H – часы в 24-часовом формате.
  • i – минуты.
  • s – секунды.
  • L – 1, если високосный год, 0, если не високосный.
  • W – порядковый номер недели года.
  • t – количество дней в указанном месяце.

Примеры работы с date

<?php
	//Все примеры показаны для даты 01.06.2013 в 12.23.59, понедельник

	echo date('Y'); //вернет '2013'

	echo date('y'); //вернет '13'

	echo date('m'); //вернет '06' - номер месяца

	echo date('d'); //вернет '01' - номер дня в месяце

	echo date('j'); //вернет '1' - номер дня в месяце (без нуля спереди)

	echo date('w'); //вернет '1' - понедельник

	echo date('H'); //вернет '12' - часы

	echo date('i'); //вернет '23' - минуты

	echo date('s'); //вернет '59' - секунды

	echo date('d-m-Y'); //вернет '01-06-2013'

	echo date('d.m.Y'); //вернет '01.06.2013'

	echo date('H:i:s d.m.Y'); //вернет '12:23:59 01.06.2013'
?>

Второй параметр функции date

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

<?php
	echo date('d-m-Y', mktime(0, 0, 0, 12, 29, 13)); //вернет '29-12-2013'
?>

Этим можно воспользоваться, чтобы узнать номер дня недели за определенную дату - просто передадим ее вторым параметром с помощью функции mktime, а первым параметром поставим управляющий символ 'w':

<?php
	//Узнаем какой день недели был 29-12-2013:
	echo date('w', mktime(0, 0, 0, 12, 29, 13)); //вернет '0' - воскресенье
?>

См. также функцию mktime, которая возвращает момент времени в формате timestamp.