Php date/time functions
Содержание:
- PHP 5 Date/Time функции
- Runtime Configuration
- Все способы вернуть из даты временную метку
- Создание даты – 4 примера
- Описание типа данных datetimedatetime Description
- Форматирование дат и времени
- Parameter Values
- Predefined numeric formats
- Форматирование и вывод дат
- Функция date() — вывод даты и времени в PHP
PHP 5 Date/Time функции
Функция | Описание |
---|---|
checkdate() | Проверяет григорианскую дату |
date_add() | Добавляет дни, месяцы, годы, часы, минуты и секунды к дате |
date_create_from_format() | Возвращает новый объект DateTime, отформатированный в соответствии с указанным форматом |
date_create() | Возвращает новый объект DateTime |
date_date_set() | Устанавливает новую дату |
date_default_timezone_get() | Возвращает индексный часовой пояс, используемый всеми функциями даты и времени |
date_default_timezone_set() | Задает часовой пояс индекса, используемый всеми функциями даты и времени |
date_diff() | Возвращает разницу между двумя датами |
date_format() | Возвращает дату, отформатированную в соответствии с заданным форматом |
date_get_last_errors() | Возвращает предупреждения/ошибки, найденные в строке даты |
date_interval_create_from_date_string() | Устанавливает для dateinterval из относительной части строки |
date_interval_format() | Форматирует интервал |
date_isodate_set() | Устанавливает дату ISO |
date_modify() | Изменяет метку времени |
date_offset_get() | Возвращает смещение часового пояса |
date_parse_from_format() | Возвращает ассоциативный массив с подробной информацией о заданной дате в соответствии с заданным форматом |
date_parse() | Возвращает ассоциативный массив с подробной информацией о заданной дате |
date_sub() | Вычитает дни, месяцы, годы, часы, минуты и секунды из даты |
date_sun_info() | Возвращает массив, содержащий информацию о начале/конце заката/восхода солнца и сумерек для указанного дня и местоположения |
date_sunrise() | Возвращает время восхода солнца для указанного дня и местоположения |
date_sunset() | Возвращает время захода солнца для указанного дня и местоположения |
date_time_set() | Устанавливат время |
date_timestamp_get() | Возвращает метку времени Unix |
date_timestamp_set() | Устанавливает дату и время на основе временной метки Unix |
date_timezone_get() | Возвращает часовой пояс данного объекта DateTime |
date_timezone_set() | Задает часовой пояс для объекта DateTime |
date() | Форматирует локальную дату и время |
getdate() | Возвращает информацию о дате/времени метки времени или текущей локальной дате/времени |
gettimeofday() | Возвращает текущее время |
gmdate() | Форматирует дату и время GMT/UTC |
gmmktime() | Возвращает метку времени Unix для даты GMT |
gmstrftime() | Форматирует дату и время GMT/UTC в соответствии с настройками локали |
idate() | Форматирует местное время/дату как целое число |
localtime() | Возвращает местное время |
microtime() | Возвращает текущую метку времени Unix в микросекундах |
mktime() | Возвращает метку времени Unix для даты |
strftime() | Форматирует местное время и/или дату в соответствии с настройками локали |
strptime() | Анализирует время/дату, сгенерированные с помощью strftime() |
strtotime() | Разбирает английское текстовое представление даты в метку времени Unix |
time() | Возвращает текущее время в виде временной метки Unix |
timezone_abbreviations_list() | Возвращает ассоциативный массив, содержащий летнее время, смещение и имя часового пояса |
timezone_identifiers_list() | Возвращает индексированный массив со всеми идентификаторами часовых поясов |
timezone_location_get() | Возвращает информацию о местоположении для указанного часового пояса |
timezone_name_from_ abbr() | Возвращает название часового пояса из аббревиатуры |
timezone_name_get() | Возвращает название часового пояса |
timezone_offset_get() | Возвращает смещение часового пояса от GMT |
timezone_open() | Создает новый объект DateTimeZone |
timezone_transitions_get() | Возвращает все переходы для часового пояса |
timezone_version_get() | Возвращает версию базы данных часового пояса |
Runtime Configuration
The behavior of these functions is affected by settings in php.ini:
Name | Description | Default | PHP Version |
---|---|---|---|
date.timezone | The default timezone (used by all date/time functions) | «» | PHP 5.1 |
date.default_latitude | The default latitude (used by date_sunrise() and date_sunset()) | «31.7667» | PHP 5.0 |
date.default_longitude | The default longitude (used by date_sunrise() and date_sunset()) | «35.2333» | PHP 5.0 |
date.sunrise_zenith | The default sunrise zenith (used by date_sunrise() and date_sunset()) | «90.83» | PHP 5.0 |
date.sunset_zenith | The default sunset zenith (used by date_sunrise() and date_sunset()) | «90.83» | PHP 5.0 |
Все способы вернуть из даты временную метку
- -> strtotime
- -> mktime
- -> DateTime + format
- -> DateTime + getTimestamp
- -> date_create + date_format
-
Как преобразовать дату в метку времени! Мы будем сегодня пользоваться функцией strtotime.
Как-то затрагивали тему времени в php и сегодня нам потребовалось дату конвертировать обратно в метку времени(timestamp)!
У есть дата такого формата… запените эту дату вместе с часами и минутами.
2019-02-05 11:38
Как преобразовать дату во временную метку с помощью strtotime
Теперь напишем вот такую конструкцию — пишем функцию strtotime, двойные скобки и внутри помещаем ранее выведенную дату в таком формате, как есть… мы получим вот такую строку;
echo strtotime(‘2019-02-05 11:38’);
1549355880
У нас получилось какое-то число, которое и есть метка времени(timestamp) добытая из даты. -
Как уже было заявлено выше … у нас есть дата вида:
2019-02-05 11:38
И теперь в качестве функции, которая вернет нам метку времени будем использовать mktime, но сперва нам потребуется, для этой функции, проделать пару манипуляций…Заменим первое значение -> все знаки(array(‘ ‘,’:’,’.’,’, ‘,)), которые, подозреваем, что есть в нашей дате, на второе значение -> перенос(-), в третьем значении дата(2019-02-05 11:38):
str_replace(array(‘ ‘,’:’,’.’,’, ‘,), ‘-‘, ‘2019-02-05 11:38’)Разобьем с помощью explode в массив:
explode(‘-‘, str_replace(array(‘ ‘,’:’,’.’,’, ‘,), ‘-‘, ‘2019-02-05 11:38’))
Используем функцию list, чтобы сделать из разбитого в массив список …:
list($year , $month , $day, $H, $i, $s) = explode(‘-‘, str_replace(array(‘ ‘,’:’,’.’,’, ‘,), ‘-‘, ‘2019-02-05 11:38’));
и сталось вернуть временную метку из даты:
echo mktime($H, $i, $s, $month, $day, $year);
Результат:
1549355880
-
Будем использовать DateTime + format для возврата временной метки из даты!
Пропускаем через класс DateTime + присваиваем переменной:
$dateTime = new DateTime(‘2019-02-05 11:38’);
format возвращаем строку даты, преобразованной согласно переданному формату и выводим:
echo $dateTime->format(‘U’);
Результат:
1549355880
-
Будем использовать DateTime + getTimestamp для возврата временной метки из даты! Все тоже самое. что и в предыдущем пункте, только вместо format используем getTimestamp
Пропускаем через класс DateTime + присваиваем переменной:
$dateTime = new DateTime(‘2019-02-05 11:38’);
getTimestamp получим метку времени в стиле Unix
echo $dateTime->getTimestamp();
Результат:
1549355880
-
Функция date_create создает объект ‘дата’, с которым в дальнейшем можно выполнять некоторые операции.
Пропускаем через функцию date_create + присваиваем переменной:
$date = date_create(‘2019-02-05 11:38’);
date_format строку, отформатированную в соответствии с указанным шаблоном format.
echo date_format($date, ‘U’);
Результат:
1549355880
Либо вместо date_format можно использовать date_timestamp_get
echo date_timestamp_get($date);Результат:
1549355880
Думаю этих способов вернуть временную метку из даты будет достаточно!
Вас может еще заинтересовать список тем : #PHP | #PHP_BOOK | #PHP_TIME | #FUNCTION_TIME | Последняя дата редактирования : 2020-11-21 11:13
//dwweb.ru/comments_1_5/include/img/hand_no_foto.png
no
no
Создание даты – 4 примера
В JavaScript создание даты осуществляется с помощью объекта . Объект представляет собой точку на оси времени и предназначен для хранения даты и времени с точностью до миллисекунды.
Примеры создания даты в JavaScript.
1. Создание текущей даты и времени.
Получить текущую дату и время в JavaScript осуществляется посредством создания экземпляра объекта Date без указания параметров:
// текущая дата (дата и время, которая была в момент создания экземпляра объекта Date на локальном компьютере пользователя) var now = new Date(); // например, выведем текущую дату в консоль console.log(now);
Если нужно получить только сегодняшнюю дату в формате строки, то можно воспользоваться методом :
var now = new Date().toLocaleDateString(); // 19.12.2019
Текущее время пользователя можно получить так:
var now = new Date().toLocaleTimeString(); // 11:02:48 var now = new Date().toLocaleTimeString().slice(0,-3); // 11:02
Дату и время в формате строки можно получить следующим образом:
var now = new Date().toLocaleString(); // 19.12.2019, 11:02:48
2. Создание даты путём указания объекту количества миллисекунд, прошедших с 1 января 1970 00:00:00 UTC.
// 1 год (не высокосный) = 365*24*60*60*1000 = 31536000000 мс // например, создадим дату 01.01.1971, 00:00:00 по UTC: var date1 = new Date(31536000000);
3. Создание даты посредством указания её объекту Date в виде строки.
При этом варианте создания даты JavaScript попытается понять переданную ей строку и сформировать на основе её дату. Преобразование строки в дату в JavaScript осуществляется с помощью метода .
Например:
// создание даты на основе строки в формате DD.MM.YY var date1 = new Date('05.11.19'); // создадим дату на основе строки в формате YYYY-MM-DDThh:mm:ss.sss (символ T используется для разделения даты и времени) var date2 = new Date('2015-02-24T21:23'); // создадим дату на основе строки с указанием часового пояса (формат YYYY-MM-DDThh:mm:ss.sss±hh:mm): var date3 = new Date('2015-02-24T22:02+03:00');
4. Создание даты посредством указания следующих параметров через запятую: год (4 цифры), месяц (отсчёт ведётся с 0), день (1..31), часы (0..23), минуты (0..59), секунды (0..59), миллисекунды (0..999). Причём обязательными из них являются только первые два параметра.
Пример создания даты с указанием только обязательных параметров:
// создадим дату 01.01.2015 (неуказанные параметры по умолчанию равны: число - 01, часы - 00, минуты - 00, секунды - 00, миллисекунды – 000). var date1 = new Date(2015,01); // создадим дату 24.01.2015, 21:23 var date2 = new Date(2015,01,24,21,23);
Примечание: Если Вам необходимо установить дату и время в UTC, то можно воспользоваться методом .
//1 пример var date1 = Date.UTC(2015,1,1); var date2 = new Date(date1); alert(date2.toUTCString()); //2 пример var newDate = new Date(Date.UTC(2015,1,1)); alert(newDate.toUTCString());
Описание типа данных datetimedatetime Description
Property (Свойство)Property | ЗначениеValue |
---|---|
СинтаксисSyntax | datetimedatetime |
ИспользованиеUsage | DECLARE @MyDatetime datetimeDECLARE @MyDatetime datetimeCREATE TABLE Таблица1 ( Столбец1 datetime )CREATE TABLE Table1 ( Column1 datetime ) |
Форматы строковых литералов по умолчаниюDefault string literal formats(используется для клиента нижнего уровня)(used for down-level client) | НеприменимоNot applicable |
Диапазон датыDate range | С я января 1753 года до 31 декабря 9999 годаJanuary 1, 1753, through December 31, 9999 |
Диапазон времениTime range | От 00:00:00 до 23:59:590,99700:00:00 through 23:59:59.997 |
Диапазон смещения часового поясаTime zone offset range | NoneNone |
Диапазоны элементовElement ranges | ГГГГ — четырехзначное число от 1753 до 9999, представляющее год.YYYY is four digits from 1753 through 9999 that represent a year.ММ обозначает 2 цифры, которые представляют месяц и принимают значения от 01 до 12.MM is two digits, ranging from 01 to 12, that represent a month in the specified year.Обозначение ДД состоит из двух цифр, представляющих день указанного месяца, и принимает значения от 01 до 31 в зависимости от месяца.DD is two digits, ranging from 01 to 31 depending on the month, that represent a day of the specified month.Обозначение чч состоит из двух цифр, представляющих час, и принимает значения от 00 до 23.hh is two digits, ranging from 00 to 23, that represent the hour.Обозначение мм состоит из двух цифр, представляющих минуту, и принимает значения от 00 до 59.mm is two digits, ranging from 00 to 59, that represent the minute.Обозначение сс состоит из двух цифр, представляющих секунду, и принимает значения от 00 до 59.ss is two digits, ranging from 00 to 59, that represent the second.Обозначение n* может содержать от нуля до трех цифр, представляющих доли секунды, и принимает значения от 0 до 999.n* is zero to three digits, ranging from 0 to 999, that represent the fractional seconds. |
Длина в символахCharacter length | Минимально 19 позиций, максимально — 2319 positions minimum to 23 maximum |
Объем памятиStorage size | 8 байт8 bytes |
ТочностьAccuracy | Округлено до приращения 0,000, 0,003 или 0,007 секундRounded to increments of .000, .003, or .007 seconds |
Значение по умолчаниюDefault value | 1900-01-01 00:00:001900-01-01 00:00:00 |
КалендарьCalendar | Григорианский (включает полный диапазон лет)Gregorian (Does include the complete range of years.) |
Определяемая пользователем точность в долях секундыUser-defined fractional second precision | НетNo |
Учет и сохранение смещения часового поясаTime zone offset aware and preservation | НетNo |
Учет перехода на летнее времяDaylight saving aware | НетNo |
Форматирование дат и времени
Последнее обновление: 31.10.2015
Для форматирования вывода дат и времени применяется ряд строковых форматов:
Описатель |
Описание |
D |
Поный формат даты. Например, 17 июля 2015 г. |
d |
Краткий формат даты. Например, 17.07.2015 |
F |
Полный формат даты и времени. Например, 17 июля 2015 г. 17:04:43 |
f |
Полный формат даты и краткий формат времени. Например, 17 июля 2015 г. 17:04 |
G |
Краткий формат даты и полный формат времени. Например, 17.07.2015 17:04:43 |
g |
Краткий формат даты и времени. Например, 17.07.2015 17:04 |
M, m |
Формат дней месяца. Например, 17 июля |
O, o |
Формат обратного преобразования даты и времени. Вывод даты и времени в соответствии со стандартом ISO 8601 в формате |
R, r |
Время по Гринвичу. Например, Fri, 17 Jul 2015 17:04:43 GMT |
s |
Сортируемый формат даты и времени. Например, 2015-07-17T17:04:43 |
T |
Полный формат времени. Например, 17:04:43 |
t |
Краткий формат времени. Например, 17:04 |
U |
Полный универсальный полный формат даты и времени. Например, 17 июля 2015 г. 17:04:43 |
u |
Краткий универсальный полный формат даты и времени. Например, 2015-07-17 17:04:43Z |
Y, y |
Формат года. Например, Июль 2015 |
Выведем текущею дату и время во всех форматах:
DateTime now = DateTime.Now; Console.WriteLine("D: " + now.ToString("D")); Console.WriteLine("d: " + now.ToString("d")); Console.WriteLine("F: " + now.ToString("F")); Console.WriteLine("f: {0:f}", now); Console.WriteLine("G: {0:G}", now); Console.WriteLine("g: {0:g}", now); Console.WriteLine("M: {0:M}", now); Console.WriteLine("O: {0:O}", now); Console.WriteLine("o: {0:o}", now); Console.WriteLine("R: {0:R}", now); Console.WriteLine("s: {0:s}", now); Console.WriteLine("T: {0:T}", now); Console.WriteLine("t: {0:t}", now); Console.WriteLine("U: {0:U}", now); Console.WriteLine("u: {0:u}", now); Console.WriteLine("Y: {0:Y}", now);
Консольный вывод:
Настройка формата времени и даты
Не всегда удобно использование встроенных форматов даты и времени. Иногда бывает необходимо задать сообственную форму отображения объекта DateTime.
В этом случае мы можем составить свой формат из описателей:
Описатель |
Описание |
d |
Представляет день месяца от 1 до 31. Одноразрядные числа используются без нуля в начале |
dd |
Представляет день месяца от 1 до 31. К одноразрядным числам в начале добавляется ноль |
ddd |
Сокращенное название дня недели |
dddd |
Полное название дня недели |
f / fffffff |
Представляет миллисекунды. Количество символов f указывает на число разрядов в миллисекундах |
g |
Представляет период или эру (например, «н. э.») |
h |
Часы в виде от 1 до 12. Часы с одной цифрой не дополняются нулем |
hh |
Часы в виде от 01 до 12. Часы с одной цифрой дополняются нулем |
H |
Часы в виде от 0 до 23. Часы с одной цифрой не дополняются нулем |
HH |
Часы в виде от 0 до 23. Часы с одной цифрой дополняются нулем |
K |
Часовой пояс |
m |
Минуты от 0 до 59. Минуты с одной цифрой не дополняются начальным нулем |
mm |
Минуты от 0 до 59. Минуты с одной цифрой дополняются начальным нулем |
M |
Месяц в виде от 1 до 12 |
MM |
Месяц в виде от 1 до 12. Месяц с одной цифрой дополняется начальным нулем |
MMM |
Сокращенное название месяца |
MMMM |
Полное название месяца |
s |
Секунды в виде числа от 0 до 59. Секунды с одной цифрой не дополняются начальным нулем |
ss |
Секунды в виде числа от 0 до 59. Секунды с одной цифрой дополняются начальным нулем |
t |
Первые символы в обозначениях AM и PM |
tt |
AM или PM |
y |
Представляет год как число из одной или двух цифр. Если год имеет более двух цифр, то в результате отображаются только две младшие цифры |
yy |
Представляет год как число из одной или двух цифр. Если год имеет более двух цифр, то в результате отображаются только две младшие цифры. |
yyy |
Год из трех цифр |
yyyy |
Год из четырех цифр |
yyyyy |
Год из пяти цифр. Если в году меньше пяти цифр, то он дополняется начальными нулями |
z |
Представляет смецщение в часах относительно времени UTC |
zz |
Представляет смецщение в часах относительно времени UTC. Если смещение представляет одну цифру, то она дополняется начальным нулем. |
Создадим пару своих форматов:
DateTime now = DateTime.Now; Console.WriteLine(now.ToString("hh:mm:ss")); Console.WriteLine(now.ToString("dd.MM.yyyy"));
Консольный вывод:
05:04:43 17.07.2015
НазадВперед
Parameter Values
Parameter | Description |
---|---|
object | Required. Specifies a DateTime object returned by date_create() |
format | Required. Specifies the format for the date. The following characters can be used:
and the following predefined constants can also be used (available since PHP 5.1.0):
|
Predefined numeric formats
The following predefined numeric formats can be specified in the format_string argument:
Format | Description |
---|---|
Displays number with no thousand separators. | |
Displays number with thousand separators, if appropriate; displays two digits to the right of the decimal separator. Output is based on system locale settings. | |
Displays at least one digit to the left and two digits to the right of the decimal separator. | |
Displays number with thousand separators, at least one digit to the left and two digits to the right of the decimal separator. | |
Displays number multiplied by 100 with a percent sign (%) appended immediately to the right; always displays two digits to the right of the decimal separator. | |
Uses standard scientific notation, providing two significant digits. | |
Displays No if number is 0; otherwise, displays Yes. | |
Displays False if number is 0; otherwise, displays True. | |
Displays Off if number is 0; otherwise, displays On. |
Форматирование и вывод дат
Во всех браузерах, кроме IE10-, поддерживается новый стандарт Ecma 402, который добавляет специальные методы для форматирования дат.
Это делается вызовом , в котором можно задать много настроек. Он позволяет указать, какие параметры даты нужно вывести, и ряд настроек вывода, после чего интерпретатор сам сформирует строку.
Пример с почти всеми параметрами даты и русским, затем английским (США) форматированием:
Вы сможете подробно узнать о них в статье Intl: интернационализация в JavaScript, которая посвящена этому стандарту.
Методы вывода без локализации:
, ,
Возвращают стандартное строчное представление, не заданное жёстко в стандарте, а зависящее от браузера. Единственное требование к нему – читаемость человеком. Метод возвращает дату целиком, и – только дату и время соответственно.
То же самое, что , но дата в зоне UTC.
Возвращает дату в формате ISO Детали формата будут далее. Поддерживается современными браузерами, не поддерживается IE8-.
Если хочется иметь большую гибкость и кросс-браузерность, то также можно воспользоваться специальной библиотекой, например Moment.JS или написать свою функцию форматирования.
Функция date() — вывод даты и времени в PHP
В PHP существует много разных встроенных функций,
которые не надо писать самому, среди них есть и date() —
функция вывода даты и времени, о которой будет описано вмести
с примерами ниже.
Если Вы когда-то сталкивались с проблемой вывода местного
(установленное на сервере) времени и даты, то не надо
прибегать к помощи JavaScript, который может быть отключён у
конкретного пользователя, просто воспользуйтесь функцией
date(). Использовать date() очень просто и удобно, из-за
всевозможных параметров вывода. И пользователь получит в итоге
простую HTML страницу, т.к. все операции по определению даты и
времени будут происходить на сервере.
Функция даты и времени возвращает строку и принимает
аргументы format (строка) и time stamp (целое число) —
необязательный аргумент:string date (string format );
Возвращает отформатированную строку теста и цифр согласно
параметрам, указанным в аргументе format. Аргумент timestamp
В таблице 1.1 представлены параметры аргумента format(при
вводе параметров необходимо соблюдать регистр):
|
Символы, буквы и цифры не указанные в таблице 1.1 будут
выведены, как есть.
echo (date(«d = F = Y «));
file://Выведет 04 = September = 2001
echo (date(«l dS of F
Y h:I:s A»));
//Выведет Tuesday 04th of September 2001
05:1:28 PM
//Обратите внимание на ds = 04th , d -день и s —
окончание
Функцию можно также присвоить переменной или элементу
массива.
$date_today = date(«m.d.y»); file://присвоено
03.12.01
$today = date(«H:i:s»); file://присвоит 1
элементу массива 17:16:17
echo(«Текущее время: $today и
дата: $day_today .»);
//Выведет Текущее время: 17:16:17 и
дата: 03.12.01
Если Вам необходимо вывести зарезервированные символы,
например слово is month, которое полностью состоит из
параметров, нужно просто поставить перед каждой буквой
поставить обратную косую черту (\).
$example = date («H:m:s \m \i\s \m\o\n\t\h»);` file://Выведет 15:03:17 m
is month
При написании статьи, использовались материалы из
руководства на http://php.su/functions/?date и собственный опыт автора. Функция date() будет вашим
помощником, если обуздать её многочисленные параметры. Все вопросы и предложения
можете присылать автору: s_fedos@hotmail.com
Обсудить эту статью на форуме |