Даты - это та часть повседневной жизни, что легко работать с ними, не задумываясь. PHP также предоставляет мощные инструменты для арифметики дат, которые облегчают манипулирование датами.
Содержание:
Получение временного штампа с time()
Функция time() дает вам всю необходимую информацию о текущей дате и времени. Он не требует аргументов, но возвращает целое число.
Целое число, возвращаемое time(), представляет собой количество секунд, прошедших с полуночи GMT 1 января 1970 года. Этот момент известен как эпоха UNIX, а количество секунд, прошедших с тех пор, называется меткой времени.
<?php print time(); ?>
Это приведет к следующему результату -
1459194178
Это трудно понять. Но PHP предлагает отличные инструменты для преобразования отметки времени в форму, удобную для людей.
Преобразование штампа времени с помощью getdate()
Функция getdate() необязательно принимает отметку времени и возвращает ассоциативный массив, содержащий информацию о дате. Если вы опускаете метку времени, она работает с текущей меткой времени, возвращенной time().
В следующей таблице перечислены элементы, содержащиеся в массиве, возвращаемые функцией getdate().
| # | Значение | Описание | Пример |
|---|---|---|---|
| 1 | seconds | Через несколько минут после минут (0-59) | 20 |
| 2 | minutes | Минуты минувшего часа (0 - 59) | 29 |
| 3 | hours | Часы дня (0 - 23) | 22 |
| 4 | mday | День месяца (1 - 31) | 11 |
| 5 | wday | День недели (0 - 6) | 4 |
| 6 | mon | Месяц года (1 - 12) | 7 |
| 7 | year | Год (4 цифры) | 1997 |
| 8 | yday | День года (0 - 365) | 19 |
| 9 | weekday | День недели | Четверг |
| 10 | month | Месяц в году | январь |
| 11 | 0 | Отметка | 948370048 |
Теперь у вас есть полный контроль над датой и временем. Вы можете отформатировать эту дату и время в любом формате, который вы хотите.
Попробуйте следующий пример
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 = 58minutes = 42hours = 19mday = 28wday = 1mon = 3year = 2016yday = 87weekday = Mondaymonth = March0 = 1459194178Today's date: 28/3/2016
Преобразование штампа времени с date()
Функция date() возвращает форматированную строку, представляющую дату. Вы можете осуществлять огромный контроль над форматом, который возвращает date(), с помощью строкового аргумента, который вы должны передать ему.
date(format,timestamp)
date() необязательно принимает отметку времени, если она опущена, тогда будут использоваться текущая дата и время. Любые другие данные, которые вы включаете в строку формата, переданную в date(), будут включены в возвращаемое значение.
В следующих таблицах перечислены коды, которые может содержать строка формата -
| # | Значение | Описание | Пример |
|---|---|---|---|
| 1 | a | «am» или «pm» в нижнем регистре | pm |
| 2 | A | «AM» или «PM» в верхнем регистре | PM |
| 3 | d | День месяца, число с ведущими нулями | 20 |
| 4 | D | День недели (три буквы) | Thu |
| 5 | F | Название месяца | January |
| 6 | h | Час (12-часовой формат - ведущие нули) | 12 |
| 7 | H | Час (24-часовой формат - ведущие нули) | 22 |
| 8 | g | Час (12-часовой формат - без начальных нулей) | 12 |
| 9 | G | Час (24-часовой формат - без начальных нулей) | 22 |
| 10 | i | Минуты (0 - 59) | 23 |
| 11 | j | День месяца (без ведущих нолей | 20 |
| 12 | l (Lower 'L') | День недели | Thursday |
| 13 | L | Високосный год ('1' для да, '0' для нет) | 1 |
| 14 | m | Месяц года (число - ведущие нули) | 1 |
| 15 | M | Месяц года (три буквы) | Jan |
| 16 | r | Дата форматирования RFC 2822 | Thu, 21 Dec 2000 16:01:07 +0200 |
| 17 | n | Месяц года (число - без начальных нулей) | 2 |
| 18 | s | Секунды часа | 20 |
| 19 | U | Временная метка | 948372444 |
| 20 | y | Год (две цифры) | 6 |
| 21 | Y | Год (четыре цифры) | 2006 |
| 22 | z | День года (0 - 365) | 206 |
| 23 | Z | Смещение в секундах от GMT | 5 |
Попробуйте следующий пример
<?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());
?>
Это приведет к следующему результату -
03/28/16 19.42:58Today is 28 2016f March 2016, at 7.42 pm
С уважением, авторы сайта Компьютерапия