Date data type php

PHP date: как это работает, как использовать, примеры

Date() — функция в PHP для конвертирования timestamp (она же метка времени Unix, количество секунд между определенной датой и 1 января 1970 года) в привычный для нас формат даты и времени. Первым в date() отправляется информация о дате (точнее — описание ее формата). Сама метка timestamp, при этом, измеряется в секундах. Указание такой метки — опционально, если она не указана, то берется текущее системное время. Функции PHP date() может быть задана с помощью следующего синтаксиса:

date(format, timestamp) -- дата(формат, временная_метка).

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

Как это работает

Здесь все элементарно: time — отдает настоящую (другими словами, текущую) метку времени в формате Unix.

Что дальше? Происходит возврат настоящего времени. Оно измеряется в секундах. Интересно, что отсчет ведется с момента наступления Unix-эпохи (эта дата — 1 января 1970 года, время — 00:00:00 GMT). Простыми словами, Unix-метка обозначает количество секунд, отсчитываемых от вышеуказанной даты, без учета високосных секунд.

Функция date. Вывод

Метки Unix не содержат никакой дополнительной информации относительно локального часового пояса.

Функция не имеет параметров.

Возвращаемые значения

Осуществляет возврат текущей timestamp.

Вот как можно использовать функцию time():

Приведенный выше пример выведет что-то наподобие:

Временная метка начала запроса доступна в $_SERVER[‘REQUEST_TIME’].

Зачем нужна функция date() в PHP

Эта функция нужна для перевода timestamp в привычный нам формат даты и времени. Несмотря на то, что со времён изобретения первых компьютеров прошли десятилетия, сегодня большинство из них по-прежнему хранит информацию о дате и времени в формате Unix.

Такой привычный для наших поколений способ времяисчисления прекратит свое существование 19 января 2038 года. Причина: прогнозируемое переполнение 32-х битного времени, просто не останется места для использования меток.

Сейчас важно найти новые методы создания timestamp или инструменты для перехода на 64-битную систему.

Еще раз вспомним синтаксис функции date:

Таким образом, можно сделать вывод: timestamp — это среднее значение общего количества секунд, которое можно отсчитать между определенной датой и началом эпохи Unix.

Важно: технически время не изменяется независимо от текущего местоположения пользователя.

Есть ли другие метки времени в PHP?

Не существует такого понятия, как «метка времени PHP». В PHP используются только два типа временных меток: Unix-timestamp:

…и второй вид метки — MySQL-timestamp:

Но вернёмся к параметру format в нашей функции. Вот как она может быть использована для вывода сегодняшней (то есть текущей) даты:

В этом примере важно отметить: функция осуществит возврат даты и времени, но только согласно встроенным часам сервера, на котором осуществляется выполнение скрипта.

Параметр format

В этом параметре указываются дополнительные символы, которые позволяют выводить точную дату и точное время (например, день недели или сокращения 12-часового формата времени — AM и PM).

Читайте также:  Javascript в acrobat pro

Вот самые частые символы, которые применяются совместно с параметром format:

  • D — конкретный день недели сокращено, с понедельника по воскресенье (от Mon до Sun).
  • m — конкретный месяц в году, указывается всегда двумя цифрами, в диапазоне от 01 до 12.
  • M — месяц, указанный буквами, с января по декабрь (Jan to Dec).
  • d — конкретный день месяца, всегда указывается двумя цифрами, в диапазоне (01 или 31).

Совет: функция PHP date() может использоваться для оптимизации самых разнообразных задач связанных с датой и временем. Например, она поможет автоматически обновлять год напротив символа копирайта в подвале сайта (Copyright 2023- ).

Аналогичным образом вы можете задействовать еще четыре символа:

  • h — конкретный час. С этой буквой он указывается в двенадцатичасовом исчислении (в диапазоне от 01 до 12).
  • H — конкретный час, который указывается в 24-часовом исчислении (в диапазоне от 00 до 23).
  • y — конкретный год в двузначном формате (например, от 09 или 15).
  • Y — конкретный год в четырехзначном формате (например, 2009 or 2018).

Теперь давайте посмотрим: каким способом можно форматировать минуты и секунды, а также сокращения 12-часового формата времени. Это четыре знака:

  • a — строчные буквы до полудня и после полудня (сокращение для аббревиатуры двенадцати-часового формата — am или pm).
  • A — эти прописные буквы образованы от сокращения слов Ante-meridiem и Post-meridiem (эквивалентно применяются аббревиатуры AM или PM).
  • i — конкретное значение минут во времени, указывается в диапазоне от 00 до 59
  • s — конкретное значение секунд во времени, указывается в идентичным диапазоне.

Вот пример разных форматов для вывода даты:

"; echo date("F d, Y h:i:s A") . "
"; echo date("h:i a"); ?> I s

Что за функция time()

Первым делом — взгляните на этот пример:

Мы видим, что эта функция позволяет получить время согласно Unix-метке (о том, что такое timestamp мы рассказывали в начале поста).

Если мы выполним пример выше, то на выходе можем получить время в довольно необычном формате:

А теперь посмотрите, как изменится этот непонятный набор цифр, если мы применим к нему функцию date():

На выходе — мы получили привычную нам дату и точное время, вплоть до секунд:

Что за функция mktime()

Функция mktime() возвращает Unix-timestamp для указанного вами аргумента, то есть количество секунд от первого января 1970 года, 00:00, и заданной датой.

Взгляните на небольшой пример ниже:

Что мы здесь сделали? Правильно, мы создали метку времени для определенной даты, в нашем случае — для даты, которая соответствует значению 16:21:13 11 июня 2015 года.

Примечание: вы можете не включать любое количество аргументов, вместо них — будет автоматически применен показатель настоящего / текущего времени.

Здесь функция выведет день, приходящийся на 2 апреля 2015 года

Приведенный выше пример дает вывод:

Функция mktime() удобна для поиска. Например, для нахождения конкретной даты в будущем, через определенный промежуток времени. Сразу взглянем на несложный пример:

В этом примере выводится дата, которая выпадает через 40 месяцев от текущей даты.

Примеры

Несколько конкретных примеров использования функции вы найдете ниже.

Прочитать дату в таком формате обычный человек не сможет

Прочитать дату в таком формате обычный человек не сможет

Мне нужно конвертировать таймстамп MySQL в Unix-метку. Как это сделать?

Читайте также:  Css выровнять таблицу внутри таблицы

Вы можете использовать функцию php_timestamp. Она принимает формат времени даты MySQL и возвращает временную метку PHP. Вот как это может выглядеть:

function php_timestamp($yourMySQLDateTime)

Если вам нужен позавчерашний день, вы можете использовать функцию strtotime:

$today = date('Y-m-d'); date($today, strtotime(' -1 day')); // вчера date($today, strtotime(' +1 day')); // завтра

Ту же функцию можно использовать, если вам нужно изменить MYSQL TIMESTAMP на дату:

$time = strtotime($dateTimeFromMysql); $myFormatForView = date("d M Y", $time);

Как сравнить две даты в условии if в PHP?

Одним из решений можно назвать преобразование даты в метку времени. Если преобразовать две даты в timestamp, то это вернет секунды с 1 января 1970 года.

Поскольку временная метка — это число, вы можете сравнивать обе даты как обычные числа:

$date1 = '2010-10-10 12:02:05'; $date2 = '2020-10-10 12:02:05'; $timestamp1 = strtotime($date1); $timestamp2 = strtotime($date2); if($timestapm1 > $timestamp2)< // ваша логика здесь >

Кроме того, можно использовать уже знакомую нам функцию strtotime:

 $dateTimestamp2) < echo "$date1 is latest than $date2"; >else < echo "$date1 is older than $date2"; >/* Вывод 02-01-2021 is latest than 18-12-2020 */ ?>

Как отобразить дату начала и конца текущей недели в PHP?

$weekstart = strtotime("next Monday") - 604800; echo "start of week is: ".date("D M j G:i:s T Y", $weekstart)."\n";

В итоге: берётся начало следующей недели и затем это значение автоматически отбрасывается на одну неделю назад.

Функция PHP strtotime() отлично подходит для таких простых, но востребованных манипуляций со временем, как в примере выше.

Еще один пример: вы можете найти конец недели (например, последнюю секунду воскресенья) с помощью следующего кода:

$weekend = strtotime("next Monday") - 1;

Важно: имеется в виду за одну секунду до начала понедельника. Если время не указано в вызове strtotime(), то предполагается первая секунда дня — 00:00.

Решить вышеуказанную проблему можно и с помощью DateTime. Причём, чаще всего, это даже проще.

Резюме

  1. Параметр format является обязательным — именно он устанавливает формат даты и времени, которые будут возвращены в PHP.
  2. Timestamp — опциональный параметр. Если он не указан, будет применяться текущая дата и время.

Обратите внимание — символы в дате могут отделяться друг от друга при помощи дополнительных знаков:

"; echo date("d-m-Y") . "
"; echo date("d.m.Y"); ?>

Используются дополнительные символы для того, чтобы дата лучше читалась (с визуальной точки зрения).

Смело используйте класс DateTimeImmutable — для снижения вероятности ошибок при работе с Unix-метками.

Источник

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
Читайте также:  Python random choice with weights

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»);
?>

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);

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.»;
?>

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!

Источник

Оцените статью