- PHP | Дата и время
- Функция PHP date()
- Синтаксис
- Параметры функции date():
- Пример
- Как всегда в футере выводить текущий год?
- Пример
- Определите свой часовой пояс
- Пример
- Функция PHP mktime()
- Как получить часы с даты в PHP и CakePHP?
- PHP Date and Time
- The PHP Date() Function
- Syntax
- Get a Date
- Example
- PHP Tip — Automatic Copyright Year
- Example
- Get a Time
- Example
- Get Your Time Zone
- Example
- Create a Date With mktime()
- Syntax
- Example
- Create a Date From a String With strtotime()
- Syntax
- Example
- Example
- More Date Examples
- Example
- Example
- Complete PHP Date Reference
PHP | Дата и время
В этом уроке рассмотрм, как на практике использовать функции PHP по получению даты и времени, а также рассмотрим способы вывода и форматирования даты и времени. Функции PHP, обрабатывающие дату и время, позволяют получать дату и время с того сервера, на котором выполняется сценарий. Также эти функции позволяют нам редактировать и форматировать полученные временные значения перед их отображением (выводом) на экран.
Функция PHP date()
Функция date() выводит текущие дату и время в заданном формате. Также функция может конвертировать формат отметки времени (временная метка, метка времени или timestamp) в удобочитаемый формат.
Синтаксис
Параметры функции date():
format Обязательный. Задает формат метки времени timestamp Необязательный. Задает отметку времени. По умолчанию текущая дата и время
Функция date() возвращает строку, которая отформатирована в соответствии с указанным шаблоном format . Параметр timestamp задает метку времени. Если timestamp не задан, тогда используется текущее системное время.
Примечание: Отметка времени — это последовательность символов, обозначающая дату и / или время, когда произошло определенное событие.
Обязательный параметр format функции date() указывает, как форматировать дату (или время). Формат задается управляющими командами (латиницей), при этом можно вставлять любые разделители между ними (дефисы, двоеточие и так далее).
Ниже представлена таблица с расшифровкой некоторых символов в строке format :
Символ в строке format | Описание | Пример возвращаемого значения |
---|---|---|
День | — | — |
d | День месяца с 2-мя цифрами | от 01 до 31 |
D | День недели в текстовом формате, 3 символа | от Mon до Sun |
z | Порядковый номер дня в году (начиная с 0) | От 0 до 365 |
Месяц | — | — |
F | Полное название месяца, например, January или March | от January до December |
m | Порядковый номер месяца, 2 цифры | от 01 до 12 |
M | Сокращенное название месяца, 3 символа | от Jan до Dec |
Год | — | — |
Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2019 |
y | Порядковый номер года, 2 цифры | Примеры: 99, 19 |
Время | — | — |
a | Ante meridiem (лат. «до полудня») или Post meridiem (лат. «после полудня») в нижнем регистре | am или pm |
A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM |
g | Часы в 12-часовом формате | от 1 до 12 |
G | Часы в 24-часовом формате | от 0 до 23 |
h | Часы в 12-часовом формате | от 01 до 12 |
H | Часы в 24-часовом формате, 2 цифры | от 00 до 23 |
i | Минуты, 2 цифры | от 00 до 59 |
s | Секунды, 2 цифры | от 00 до 59 |
Ниже представлены некоторые примеры получения фактической информации о дате и времени:
Пример
echo "Отображение текущей даты: " . date('d-m-Y') . "
";
echo "Отображение текущего времени: " . date('H:i:s') . "
";
echo "Отображение текущей даты и времени: " . date('d-m-Y H:i:s') . "
";
echo "Отображение текущей даты и времени в длинном формате: " . date('d F Y, D - g:i:s A');
?>
Как всегда в футере выводить текущий год?
Используйте функцию date() для автоматического обновления года в футере вашего веб-сайта:
Пример
Copyright © 2014- Все права защищены.
Результат выполнения кода:
Примечание: Обратите внимание, что функция PHP date() вернет текущую дату / время сервера!
Определите свой часовой пояс
Если сервер, на котором расположен ваш сайт, находится в другой стране или настроен для другого часового пояса, то текущее время, возвращаемое функцией date(), будет отличаться от реального времени вашего часового пояса.
Итак, если вам нужно, чтобы время было правильным для вашего региона, вы можете установить часовой пояс, который хотите использовать.
Функция date_default_timezone_set() устанавливает временную зону по умолчанию для всех функций даты и времени в скрипте.
Параметр timezone_identifier — это идентификатор временной зоны.
Функция date_default_timezone_set() устанавливает часовой пояс, который по умолчанию используется всеми дата/время функциями в сценарии. Чтобы изменить значение часового пояса для вашего веб-сайта, достаточно в начале скрипта задать функцию date_default_timezone_set() , параметром которой будет служить название часового пояса.
В приведенном ниже примере для часового пояса устанавливается значение ‘Europe/Moscow’, а затем выводится текущее время в указанном формате:
Пример
echo "Текущее время в Москве " . date("h:i:sa");
date_default_timezone_set('Europe/Kiev');
echo "Текущее время в Киеве " . date("h:i:sa");
?>
Функция PHP mktime()
Необязательный параметр timestamp функции date() указывает временную метку. Если она не указано, будут использоваться текущая дата и время (как в примерах выше).
Но если вам нужно получить метку времени в прошлом или будущем, то сделать это можно с помощью функции mktime() . Вам нужно указать нужную дату, и она возвращается с меткой времени Unix. Метка времени Unix содержит количество секунд между эпохой Unix (1 января 1970 г., 00:00:00 GMT) и указанным временем.
Синтаксис данной функции следующий:
Здесь используются следующие данные:
hour Количество часов, прошедших с начала дня, указанного параметрами month, day и year. minute Количество минут, прошедших от начала часа, указанного параметром hour. second Количество секунд, прошедших от начала минуты, указанной параметром minute. month Количество месяцев, прошедших с конца предыдущего года. day Количество дней, прошедших с конца предыдущего месяца. year Номер года, может быть указан двумя или четырьмя цифрами.
Аргументы могут быть опущены в порядке справа налево. В этом случае их значения по умолчанию равны соответствующим компонентам локальной даты/времени.
Функцию mktime() удобно использовать для выполнения арифметических операций с датами, так как она вычисляет верные значения при некорректных аргументах. Например, в следующем примере каждая строка выведет «Jan-01-1921»:
Как получить часы с даты в PHP и CakePHP?
Я хочу получить только часы с даты с помощью функции PHP и Cakephp.
$date = "2011-07-26 20:05:00"; $hours = ?
По часам я предполагаю, что вы имеете в виду, если время 8 вечера или 20:00 часов, как в вашей временной строке, тогда…
$date = "2011-07-26 20:05:00"; $date = strtotime($date); echo date('H', $date);
Я не знаком с форматами даты PHP, поэтому вам нужно будет ссылаться на PHP.net для правильного символа форматирования.
Используйте класс Datetime (PHP 5.3 или выше).
$dt = DateTime::createFromFormat("Y-m-d H:i:s", "2011-07-26 20:05:00"); $hours = $dt->format('H'); // '20'
На стороне php вы используете date(‘H’,strtotime($date));
и на стороне mysql вы можете использовать DATE_FORMATE(NOW(),’%H’) , чтобы получить только час
$date содержит дату, такую как формат “2014/08/14”
Чтобы преобразовать дату, например ‘2014/08/14’, ’14 -08-2014 ‘, вы должны использовать
date('d-m-Y',strtotime(str_replace('/','-',$date)))
Лучший способ использования DateTime class
$my_sql_date = "2011-07-26 20:05:00"; $date_time_obj = new DateTime($my_sql_date); echo $date_time_obj->format('H');
Для 24-часового и 12-часового формата, пожалуйста, проверьте код ниже:
$date = "2011-07-26 20:05:00"; echo $hours = date('G', strtotime($date)); // In 24-hour format of an hour without leading zeros echo '
'; echo $hours = date('g', strtotime($date)); // 12-hour format of an hour without leading zeros // For current timestamp echo $hours = date('G'); // In 24-hour format of an hour without leading zeros echo '
'; echo $hours = date('g'); //12-hour format of an hour without leading zeros
PHP Date and Time
The PHP date() function is used to format a date and/or a time.
The PHP Date() Function
The PHP date() function formats a timestamp to a more readable date and time.
Syntax
Parameter | Description |
---|---|
format | Required. Specifies the format of the timestamp |
timestamp | Optional. Specifies a timestamp. Default is the current date and time |
A timestamp is a sequence of characters, denoting the date and/or time at which a certain event occurred.
Get a Date
The required format parameter of the date() function specifies how to format the date (or time).
Here are some characters that are commonly used for dates:
- d — Represents the day of the month (01 to 31)
- m — Represents a month (01 to 12)
- Y — Represents a year (in four digits)
- l (lowercase ‘L’) — Represents the day of the week
Other characters, like»/», «.», or «-» can also be inserted between the characters to add additional formatting.
The example below formats today’s date in three different ways:
Example
echo «Today is » . date(«Y/m/d») . «
«;
echo «Today is » . date(«Y.m.d») . «
«;
echo «Today is » . date(«Y-m-d») . «
«;
echo «Today is » . date(«l»);
?>?php
PHP Tip — Automatic Copyright Year
Use the date() function to automatically update the copyright year on your website:
Example
Get a Time
Here are some characters that are commonly used for times:
- H — 24-hour format of an hour (00 to 23)
- h — 12-hour format of an hour with leading zeros (01 to 12)
- i — Minutes with leading zeros (00 to 59)
- s — Seconds with leading zeros (00 to 59)
- a — Lowercase Ante meridiem and Post meridiem (am or pm)
The example below outputs the current time in the specified format:
Example
Note that the PHP date() function will return the current date/time of the server!
Get Your Time Zone
If the time you got back from the code is not correct, it’s probably because your server is in another country or set up for a different timezone.
So, if you need the time to be correct according to a specific location, you can set the timezone you want to use.
The example below sets the timezone to «America/New_York», then outputs the current time in the specified format:
Example
Create a Date With mktime()
The optional timestamp parameter in the date() function specifies a timestamp. If omitted, the current date and time will be used (as in the examples above).
The PHP mktime() function returns the Unix timestamp for a date. The Unix timestamp contains the number of seconds between the Unix Epoch (January 1 1970 00:00:00 GMT) and the time specified.
Syntax
The example below creates a date and time with the date() function from a number of parameters in the mktime() function:
Example
Create a Date From a String With strtotime()
The PHP strtotime() function is used to convert a human readable date string into a Unix timestamp (the number of seconds since January 1 1970 00:00:00 GMT).
Syntax
The example below creates a date and time from the strtotime() function:
Example
PHP is quite clever about converting a string to a date, so you can put in various values:
Example
$d=strtotime(«next Saturday»);
echo date(«Y-m-d h:i:sa», $d) . «
«;
However, strtotime() is not perfect, so remember to check the strings you put in there.
More Date Examples
The example below outputs the dates for the next six Saturdays:
Example
$startdate = strtotime(«Saturday»);
$enddate = strtotime(«+6 weeks», $startdate);
?php
while ($startdate < $enddate) echo date("M d", $startdate) . "
«;
$startdate = strtotime(«+1 week», $startdate);
>
?>
The example below outputs the number of days until 4th of July:
Example
$d1=strtotime(«July 04»);
$d2=ceil(($d1-time())/60/60/24);
echo «There are » . $d2 .» days until 4th of July.»;
?>?php
Complete PHP Date Reference
For a complete reference of all date functions, go to our complete PHP Date Reference.
The reference contains a brief description, and examples of use, for each function!