Учебники

PHP — дата и время

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

Получение метки времени со временем ()

Функция PHP time () дает вам всю необходимую информацию о текущей дате и времени. Не требует аргументов, но возвращает целое число.

Целое число, возвращаемое функцией time (), представляет количество секунд, прошедших с полуночи по Гринвичу 1 января 1970 года. Этот момент известен как эпоха UNIX, а количество секунд, прошедших с тех пор, называется отметкой времени.

Live Demo

<?php
   print time();
?>

Это даст следующий результат —

1480930103

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

Преобразование метки времени с помощью getdate ()

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

В следующей таблице перечислены элементы, содержащиеся в массиве, возвращаемом методом getdate ().

Sr.No Ключ и описание пример
1

секунд

Секунды после минут (0-59)

20
2

минут

Минуты после часа (0 — 59)

29
3

часов

Часы дня (0 — 23)

22
4

MDAY

День месяца (1 — 31)

11
5

WDAY

День недели (0 — 6)

4
6

понедельник

Месяц года (1 — 12)

7
7

год

Год (4 цифры)

1997
8

yday

День года (0 — 365)

19
9

будний день

День недели

Четверг
10

месяц

Месяц года

январь
11

0

Отметка

948370048

секунд

Секунды после минут (0-59)

минут

Минуты после часа (0 — 59)

часов

Часы дня (0 — 23)

MDAY

День месяца (1 — 31)

WDAY

День недели (0 — 6)

понедельник

Месяц года (1 — 12)

год

Год (4 цифры)

yday

День года (0 — 365)

будний день

День недели

месяц

Месяц года

0

Отметка

Теперь у вас есть полный контроль над датой и временем. Вы можете отформатировать эту дату и время в любом формате.

пример

Попробуйте следующий пример

Live Demo

<?php
   $date_array = getdate();
   
   foreach ( $date_array as $key => $val ){
      print "$key = $val<br />";
   }
	
   $formated_date  = "Today's date: ";
   $formated_date .= $date_array['mday'] . "/";
   $formated_date .= $date_array['mon'] . "/";
   $formated_date .= $date_array['year'];
   
   print $formated_date;
?>

Это даст следующий результат —

seconds = 10
minutes = 29
hours = 9
mday = 5
wday = 1
mon = 12
year = 2016
yday = 339
weekday = Monday
month = December
0 = 1480930150
Today's date: 5/12/2016

Преобразование метки времени с датой ()

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

date(format,timestamp)

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

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

Sr.No Формат и описание пример
1

строчные буквы ‘am’ или ‘pm’

вечера
2

‘AM’ или ‘PM’ прописные буквы

ВЕЧЕРА
3

d

День месяца, число с ведущими нулями

20
4

D

День недели (три буквы)

четверг
5

F

Название месяца

январь
6

час

Час (12-часовой формат — ведущие нули)

12
7

ЧАС

Час (24-часовой формат — ведущие нули)

22
8

г

Час (12-часовой формат — без начальных нулей)

12
9

г

Час (24-часовой формат — без начальных нулей)

22
10

я

Минуты (0 — 59)

23
11

J

День месяца (без начальных нулей

20
12

л (ниже «L»)

День недели

Четверг
13

L

Високосный год («1» для «да», «0» для «нет»)

1
14

м

Месяц года (число — ведущие нули)

1
15

M

Месяц года (три буквы)

январь
16

р

Дата в формате RFC 2822

Четверг, 21 декабря 2000 г. 16:01:07 +0200
17

N

Месяц года (число — без начальных нулей)

2
18

s

Секунды часа

20
19

U

Отметка времени

948372444
20

Y

Год (две цифры)

06
21

Y

Год (четыре цифры)

2006
22

Z

День года (0 — 365)

206
23

Z

Смещение в секундах от GMT

+5

строчные буквы ‘am’ или ‘pm’

‘AM’ или ‘PM’ прописные буквы

d

День месяца, число с ведущими нулями

D

День недели (три буквы)

F

Название месяца

час

Час (12-часовой формат — ведущие нули)

ЧАС

Час (24-часовой формат — ведущие нули)

г

Час (12-часовой формат — без начальных нулей)

г

Час (24-часовой формат — без начальных нулей)

я

Минуты (0 — 59)

J

День месяца (без начальных нулей

л (ниже «L»)

День недели

L

Високосный год («1» для «да», «0» для «нет»)

м

Месяц года (число — ведущие нули)

M

Месяц года (три буквы)

р

Дата в формате RFC 2822

N

Месяц года (число — без начальных нулей)

s

Секунды часа

U

Отметка времени

Y

Год (две цифры)

Y

Год (четыре цифры)

Z

День года (0 — 365)

Z

Смещение в секундах от GMT

пример

Попробуйте следующий пример

Live Demo

<?php
   print date("m/d/y G.i:s<br>", time());
   print "Today is ";
   print date("j of F Y, \a\\t g.i a", time());
?>

Это даст следующий результат —

12/05/16 9.29:47Today is 5 2016f December 2016, at 9.29 am

Надеюсь, у вас есть хорошее понимание того, как форматировать дату и время в соответствии с вашими требованиями. Для справки, полный список всех функций даты и времени приведен в PHP Date & Time Functions.