Функции даты и времени PHP

Функция date

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

Вот эти команды:

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

php<?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'
?>

Функция time

Функция time возвращает разницу в секундах между 1-го января 1970 года и текущим моментом времени. Такое представление даты называется форматом timestamp. С помощью функции time мы можем получить только текущий момент времени. Чтобы получить timestamp за любую дату следует использовать функцию mktime. Смотрите пример:

php<?php
  echo mktime(12, 43, 59, 1, 31, 2017);
?>

Функция mktime

Функция mktime возвращает timestamp за заданный момент времени. Синтаксис такой: часы, минуты, секунды, день, месяц, год.

Давайте получим timestamp за 31.01.2017 12:43:59:

php<?php
  echo mktime(12, 43, 59, 1, 31, 2017);
?>

Функция strtotime

Функция strtotime - это аналог функции mktime (тоже возвращает timestamp), только в отличие от нее принимает дату в более свободном формате. Что можно делать еще: можно написать так - strtotime('now') - и мы получим текущий момент времени, или так - strtotime('next Monday') - и мы получим следующий понедельник (Monday по-английски 'понедельник'). Смотрите пример:

php<?php
  echo strtotime('now');
  
  echo strtotime('10 September 2000');
  
  echo strtotime('+1 day');
  
  echo strtotime('+1 week');
  
  echo strtotime('+1 week 2 days 4 hours 2 seconds');
  
  echo strtotime('next Thursday');
  
  echo strtotime('last Monday');
?>