Как получить текущую дату php
Перейти к содержимому

Как получить текущую дату php

  • автор:

Дата и время — Основы PHP

Вы когда-нибудь задумывались о том, как хранится в компьютере время? В этом уроке мы обсудим, как работают время и дата и где они хранятся.

Время

Как вы знаете, включение и выключение компьютера никак не влияет на часы. Можно сделать вывод, что часы в компьютере работают сами по себе.

Это действительно так. Основные часы компьютера — аппаратные. Они живут самостоятельной жизнью и имеют свою собственную батарею. При включении компьютер считывает данные этих часов, записывает к себе в память и начинает самостоятельно отсчитывать время. Эти часы называются системными. Любое изменение системных часов влияет и на аппаратные.

В Linux, Unix, MacOS и большинстве других операционных систем системное время представляется в формате Unix Time. Оно определяется как количество секунд, прошедших с этого момента:

00:00:00 UTC 1 января 1970 года (четверг)

Время с этого момента называют «эрой Unix» (Unix Epoch). Unix-время представлено целым числом, которое увеличивается с каждой прошедшей секундой без необходимости вычислений для определения года, месяца, дня, часа или минуты.

Конкретная дата в формате Unix Time называется timestamp — временной штамп. Например, для получения текущего timestamp в PHP используется функция time() :

 time(); // 1532435204 

Дата

Одна из главных функций по работе с датами в PHP — date() . Она конвертирует timestamp в человекочитаемый формат.

Первым параметром в эту функцию передается описание формата даты, которое похоже на форматы для функции sprintf() :

 // Y означает год date('Y'); // 2018 

По умолчанию date() использует текущее время. Но если нужно, ей можно передать конкретный timestamp:

 date('M', 123123123); // Nov 

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

 date('l jS \of F Y h:i:s A'); // Thursday 26th of July 2018 10:58:55 AM 

Функия mktime()

Функция mktime() генерирует timestamp по информации о времени: секундах, часах, минутах и дате:

( int $hour, ?int $minute = null, ?int $second = null, ?int $month = null, ?int $day = null, ?int $year = null ): int|false 

mktime() — многословная функция, в которой каждая часть даты и времени передается как отдельный параметр:

 mktime(0, 0, 0, 7, 1, 2000); // 962409600 

Часовые пояса

Одна из самых сложных деталей при работе с датами — часовые пояса (time zones).

Вся Земля делится на 24 часовых пояса, так что в соседних поясах время чаще всего отличается на час. Нулевым временем считается всемирное координированное время (UTC). Часовые пояса вокруг земного шара выражаются, как положительное или отрицательное смещение от UTC. Например, в Москве часовой пояс +3.

Изюминку в этот механизм добавляет переход на летнее и зимнее время. Причем если пояса строго фиксированы, то переход на зимнее и летнее время — прерогатива конкретных государств, которые периодически его вводят или отменяют. Время UTC никогда не переводят, смещения происходят относительно него. Кроме этого, есть еще тысяча и одна проблема.

Главное правило при работе с датами — хранение и сравнение должно производиться в UTC формате. А вот выводить даты лучше в той зоне, в которой живет пользователь.

Если вам нужно проверить текущую таймзону, можно воспользоваться функцией date_default_timezone_get() . Установить зону функцией date_default_timezone_set() .

Дополнительные материалы
  1. Примеры форматов дат
  2. Список поддерживаемых временных зон в PHP

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Получить текущую дату и прибавить к произвольной дате несколько дней

1) необходимо вывести текущую дату в таком формате: 24.03.2016 2) ещё необходимо взять такую дату например:

$date = '10.03.2016'; 

и прибавить к ней например 30 дней, что бы вышло так:

echo $date; //Ответ: 09.04.2016 

Совсем запутался, не знаю как это всё сделать. Помогите пожалуйста.
Отслеживать
задан 24 мар 2016 в 16:19
117 1 1 золотой знак 3 3 серебряных знака 10 10 бронзовых знаков

echo date(«d.m.Y»); //текущую дату догадался как получить) а вот плюсовать в таком формате как n количество дней пока не знаю. дальше мне надо значение 23.10.2016 занести в базу данных в виде строки. а потом извлеь в любое удобное время, плюсануть несколько дней, и обратно записать.

24 мар 2016 в 16:33

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

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

echo date('d.m.Y'); 

Для того, чтобы прибавить к текущей дате 10 дней можно воспользоваться функцией strtotime()

echo date('d.m.Y', strtotime("+10 days")); 

Если вам требуется прибавить к строке ‘21.11.2015’ десять дней, можно учесть, что strtotime() возвращает время в секундах с 1 января 1970 года и просто прибавить количество секунд, соответствующее 10 дням

echo date('d.m.Y', strtotime('21.11.2015') + 10 * 24 * 3600); 

Дата и время в PHP

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

Функция даты в PHP

Давайте попробуем поэкспериментировать с этой функцией и выведем даты в совершенно разных форматах. В том числе не текущие даты, а даты через несколько дней, часов или секунд.

Приступим с примера:

  • d — номер дня в месяце. Если меньше 10, то с нулём: «09», «05»
  • m — номер месяца. Если меньше 10, то с нулём: «09», «05»
  • Y — год, 4 цифры.
  • y — год, две цифры.
  • n — номер месяца. Без первого нуля, если меньше 10
  • j — номер дня в месяце. Без первого нуля, если меньше 10
  • H — часы в 24-часовом формате. Если меньше 10, то с нулём: «09», «05»
  • s — секунды. Если меньше 10, то с нулём: «09», «05»
  • i — минуты. Если меньше 10, то с нулём: «09», «05»
  • z — номер дня от начала года.
  • w — день недели (0 — воскресенье, 1 — понедельник и т.д.).
  • h — часы в 12-часовом формате
  • L — 1, если високосный год, 0, если не високосный.
  • W — порядковый номер недели года.
  • U — количество секунд, прошедших с 1 января 1970 года (то есть timestamp).

В результате выполнения такого кода мы узнаем дату и время в формате «ДД.ММ.ГГГГ ЧЧ:ММ:СС» через 3 дня. Или говоря в секундах, через 3600 * 24 * 3 секунд. Можно не только прибавлять, но и отнимать секунды, чтобы получить дату в прошлом. Такой способ вычисления даты является одним из самых простых, но для полноценного использования ещё нужная функция, которая переводит дату из любого формата в timestamp. Такая функция есть и называется strtotime( ). В качестве аргумента она принимает дату в любом формате. Но лучше использовать очевидные форматы типа «ДД.ММ.ГГГГ ЧЧ:ММ:СС». Тогда она правильно разберётся, что относится к году, а что ко дню. Попробуем её на практике:

PHP Date() и функция времени: как получить текущую временную метку?

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

Синтаксис и пример даты PHP

PHP Дата следующегоwing основной синтаксис

  • «date(…)» — это функция, которая возвращает текущую временную метку в PHP на сервере.
  • «формат» — это общий формат, в котором мы хотим, чтобы наш вывод был, т.е.;
    • «Ymd» для формата даты PHP ГГГГ-ММ-ДД
    • «Y» для отображения текущего года
    • «[метка времени]» не является обязательным. Если метка времени не указана, PHP получит текущую дату и время PHP на сервере.

    Давайте посмотрим на базовый пример, который отображает текущий год.

    Вывод:

    2018

    Что такое временная метка?

    Временная метка в PHP — это числовое значение в секундах между текущим временем и значением по состоянию на 1. st Январь 1970 г. 00:00:00 Среднее время по Гринвичу (GMT).

    Значение, возвращаемое функцией времени, зависит от часового пояса по умолчанию.

    Часовой пояс по умолчанию установлен в файле php.ini.

    Его также можно установить программно с помощью функции date_default_timezone_set.

    Код ниже отображает текущую отметку времени

    Предполагая, что вы сохранили файл timestamp.php в папке phptuts, перейдите по URL-адресу. http://localhost/phptuts/timestamp.php

    TimeStamp

    Примечание. Значение отметки времени PHP не является константой. Оно меняется каждую секунду.

    Получение списка доступных идентификаторов часовых поясов

    Прежде чем мы рассмотрим, как программно установить часовой пояс по умолчанию, давайте посмотрим, как получить список поддерживаемых часовых поясов.

     $list)< echo $list . "
    "; > ?>
    • «$timezone_identifiers = DateTimeZone::listIdentifiers();» вызывает статический метод listIdentifiers зоны DateandTime, встроенной в класс. Метод listIdentifiers возвращает список констант, присвоенных переменной $timezone_identifiers.
    • «foreach» перебирает числовой массив и печатает значения.

    Предполагая, что вы сохранили файл list_time_zones.php в папке phptuts, перейдите по URL-адресу. http://localhost/phptuts/list_time_zones.php

    Идентификаторы часовых поясов

    PHP устанавливает часовой пояс программно

    Функция date_default_timezone_set позволяет вам установить часовой пояс по умолчанию из PHP-скрипта.

    Установленный часовой пояс будет использоваться для всех дат в PHP-скрипты функций. Он имеет следующееwing синтаксис.

    string $timezone_identifier); ?>
    • «date_default_timezone_set()» — это функция, которая устанавливает часовой пояс по умолчанию.
    • «строка $timezone_identifier» — идентификатор часового пояса.

    Сценарий ниже отображает время в соответствии с часовым поясом по умолчанию, установленным в php.ini.

    Затем он меняет часовой пояс по умолчанию на Азию/Калькутту и снова отображает время.

    Предполагая, что вы сохранили файл set_time_zone.php в папке phptuts, перейдите по URL-адресу. http://localhost/phptuts/set_time_zone.php

    PHP устанавливает часовой пояс программно

    Функция PHP Mktime

    Функция mktime возвращает метку времени в формате Юникс формат.

    Он имеет следующееwing синтаксис.

    • «mktime(…)» — это функция отметки времени PHP make.
    • «час» не является обязательным, это количество часов
    • «минута» не является обязательной, это количество минут
    • «секунда» не является обязательной, это количество секунд
    • «месяц» не является обязательным, это номер месяца
    • «день» не является обязательным, это номер дня
    • «год» не обязателен, это номер года
    • «is_dst» не является обязательным, он используется для определения летнего времени (DST). 1 — летнее время, 0 — нет, и —1, если неизвестно.

    Давайте теперь рассмотрим пример, который создает метку времени для даты 13 с помощью функции mktime.

    • «0,0,0» — это часы, минуты и секунды соответственно.
    • «13» — день месяца.
    • «10» — месяц года.
    • «2025» — год

    Вывод:

    1760328000

    Справочник по функции PHP Date

    В таблице ниже показаны общие параметры, используемые при работе с функциями даты PHP.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *