Php дата следующего дня

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

В распределенных системах, таких, как Интернет, время играет особую роль. Из-за незначительного расхождения системных часов игрок на рынке Forex может потерять десятки тысяч долларов в течение нескольких минут; система деловой разведки ошибется в составлении прогноза; серверы NNTP в процессе синхронизации потеряют важную информацию, нужную пользователю и т.д.

PHP-функции для работы с датой и временем

PHP содержит множество функций для работы с датой и временем. Наиболее употребимыми являются:

time() Возвращает текущее абсолютное время. Это число равно количеству секунд, которое прошло с полуночи 1 января 1970 года (с начала эпохи UNIX). getdate( ) Считывает информацию о дате и времени. Возвращает ассоциативный массив, содержащий информацию по заданному или по текущему (по умолчанию) времени. Массив содержит следующие элементы:

seconds Секунды (0-59)
minutes Минуты (0-59)
hours Часы (0-23)
mday День месяца (1-31)
wday День недели (0-6), начиная с воскресенья
mon Месяц (1-12)
year Год
yday День года (0-365)
weekday Название дня недели (например, Friday)
month Название месяца (например, January)
0 Абсолютное время

Пример 1

$d = getdate(); // использовано текущее время foreach ( $d as $key => $val ) echo "$key = $val
"; echo "
Сегодня: $d[mday].$d[mon].$d[year]";

seconds = 34
minutes = 25
hours = 23
mday = 23
wday = 0
mon = 7
year = 2023
yday = 203
weekday = Sunday
month = July
0 = 1690143934
Сегодня: 23.7.2023

date() Форматирование даты и времени. Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. Строка формата может содержать следующие коды:

Читайте также:  Css выделить шрифт цветом
a Включено обозначение «am» или «pm»
A Включено обозначение «AM» или «PM»
d День месяца (01-31)
D Сокращенное название дня недели (три буквы)
F Полное название месяца
g Часы (12-часовой формат без ведущих нулей)
G Часы (24-часовой формат без ведущих нулей)
h Часы (12-часовой формат)
H Часы (24-часовой формат)
i Минуты (00-59)
j День месяца без ведущих нулей (1-31)
l Полное название дня недели
L Признак високосного года (0 или 1)
m Месяц (01-12)
M Сокращенное название месяца (три буквы)
n Месяц (1-12)
s Секунды (00-59)
t Количество дней в данном месяце (от 28 до 31)
U Абсолютное время
w Номер дня недели (0 — воскресенье, 6 — суббота)
y Год (два разряда)
Y Год (четыре разряда)
z День года (0-365)
Z Смещение часового пояса в секундах (от -43200 до 43200)

Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку. Если в строку формата нужно добавить символы, которые сами по себе являются кодами формата, то перед ними надо поставить обратную косую черту «\». Символы, которые становятся кодами формата при добавлении к ним обратной косой, нужно предварять двумя косыми. Например, если необходимо добавить в строку «n», то надо ввести «\\n», поскольку «\n» является символом новой строки.

Пример 2

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

часы
минуты
секунды
месяц
день месяца
год

Пример 3

date( "j F Y, \a\\t g.i a, l", mktime( 13, 30, 0, 1, 22, 1971 ) );

22 January 1971, at 1.30 pm, Friday

checkdate() Проверка правильности даты. Аргументы: месяц, день, год. Возвращает true , если дата правильная, т.е.
месяц — целое число от 1 до 12;
день — целое число, не превышающее общего количества дней в данном месяце. При этом високосные годы обрабатываются корректно;
год — целое число от 1 до 32767.

if ( !checkdate( $month, 1, $year ) )

Внимание! Дата может находиться в допустимом диапазоне, но остальные функции работы с датами не примут это значение. Так, нельзя использовать mktime() для годов до 1902, а также следует использовать ее осторожно для годов до 1970.

strftime() Формирование локальной даты и времени.
Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. При этом названия месяцев и дней недели извлекается из локали, выбранной с помощью функции setlocate() . Строка формата может содержать следующие коды:

%a Сокращенное название дня недели
%A Полное название дня недели
%b Сокращенное название месяца
%B Полное название месяца
%c Предпочтительный формат даты и времени
%C Номер века
%d День месяца (1-31)
%D То же, что и %m/%d/%y
%e Месяц (1-12)
%h То же, что и %b
%H Часы (24-часовой формат)
%I Часы (12-часовой формат)
%j День года (0-365)
%m Месяц (1-12)
%M Минуты
%n Символ новой строки
%p Включено обозначение «am» или «pm»
%r Время с использованием a.m./p.m.-нотации
%R Время в 24-часовом формате
%S Секунды (00-59)
%t Символ табуляции
%T То же, что и %H:%M:%S
%u Номер дня недели (1 — понедельник, 7 — воскресенье)
%U Номер недели. Отсчет начинается с первого воскресенья года
%V Номер недели по ISO 8601:1988. Первая неделя должна иметь не менее четырех дней, а понедельник считается первым днем
%W Номер недели. Отсчет начинается с первого понедельника года
%w Номер дня недели (0 — воскресенье, 6 — суббота)
%x Предпочтительный формат даты без времени
%X Предпочтительный формат времени без даты
%y Год (два разряда)
%Y Год (четыре разряда)
%Z Часовой пояс (имя или сокращение)
%% Символ «%»

Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку.

Пример 4

echo strftime("%A %d %B %Y %H:%M
"); //error_reporting(E_ALL & ~E_WARNING); //setlocale(LC_ALL,''); echo strftime("Сегодня %A %d %B %Y %X
"); echo strftime("%Z
");

Sunday 23 July 2023 23:25
Сегодня Sunday 23 July 2023 23:25:34
MSK

Еще примеры:

Источник

date

Возвращает строку, отформатированную в соответствии с указанным в параметре format шаблоном. Используется метка времени, заданная параметром timestamp (метка времени Unix), или текущее системное время, если параметр timestamp не задан. Таким образом, параметр timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time() .

Метки времени Unix не обрабатывают часовые пояса. Используйте класс DateTimeImmutable и его метод форматирования DateTimeInterface::format() для форматирования информации о дате/времени с привязкой к часовому поясу.

Список параметров

Замечание: Функция date() всегда будет генерировать 000000 в качестве микросекунд, поскольку она принимает параметр int , тогда как DateTime::format() поддерживает микросекунды, если DateTime был создан с микросекундами.

Необязательный параметр timestamp представляет собой метку времени типа int , по умолчанию равную текущему локальному времени, если timestamp не указан или null . Другими словами, значение по умолчанию равно результату функции time() .

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

Возвращает отформатированную строку с датой.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках часового пояса сгенерирует ошибку уровня E_WARNING , если часовой пояс некорректный. Смотрите также date_default_timezone_set()

Список изменений

Версия Описание
8.0.0 timestamp теперь допускает значение null.

Примеры

Пример #1 Примеры использования функции date()

// установка часового пояса по умолчанию.
date_default_timezone_set ( ‘UTC’ );

// выведет примерно следующее: Monday
echo date ( «l» );

// выведет примерно следующее: Monday 8th of August 2005 03:12:46 PM
echo date ( ‘l jS \of F Y h:i:s A’ );

// выведет: July 1, 2000 is on a Saturday
echo «July 1, 2000 is on a » . date ( «l» , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));

/* пример использования константы в качестве форматирующего параметра */
// выведет примерно следующее: Mon, 15 Aug 2005 15:12:46 UTC
echo date ( DATE_RFC822 );

// выведет примерно следующее: 2000-07-01T00:00:00+00:00
echo date ( DATE_ATOM , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));
?>

Чтобы запретить распознавание символа как форматирующего, следует экранировать его с помощью обратного слеша. Если экранированный символ также является форматирующей последовательностью, то следует экранировать его повторно.

Пример #2 Экранирование символов в функции date()

Для вывода прошедших и будущих дат удобно использовать функции date() и mktime() .

Пример #3 Пример совместного использования функций date() и mktime()

$tomorrow = mktime ( 0 , 0 , 0 , date ( «m» ) , date ( «d» )+ 1 , date ( «Y» ));
$lastmonth = mktime ( 0 , 0 , 0 , date ( «m» )- 1 , date ( «d» ), date ( «Y» ));
$nextyear = mktime ( 0 , 0 , 0 , date ( «m» ), date ( «d» ), date ( «Y» )+ 1 );
?>

Замечание:

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

Ещё несколько примеров использования функции date() . Важно отметить, что следует экранировать все символы, которые необходимо оставить без изменений. Это справедливо и для тех символов, которые в текущей версии PHP не распознаются как форматирующие, поскольку это может быть введено в следующих версиях. Для экранировании управляющих последовательностей (например, \n) следует использовать одинарные кавычки.

Пример #4 Форматирование с использованием date()

// Предположим, что текущей датой является 10 марта 2001, 5:16:18 вечера,
// и мы находимся в часовом поясе Mountain Standard Time (MST)

$today = date ( «F j, Y, g:i a» ); // March 10, 2001, 5:16 pm
$today = date ( «m.d.y» ); // 03.10.01
$today = date ( «j, n, Y» ); // 10, 3, 2001
$today = date ( «Ymd» ); // 20010310
$today = date ( ‘h-i-s, j-m-y, it is w Day’ ); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date ( ‘\i\t \i\s \t\h\e jS \d\a\y.’ ); // it is the 10th day.
$today = date ( «D M j G:i:s T Y» ); // Sat Mar 10 17:16:18 MST 2001
$today = date ( ‘H:m:s \m \i\s\ \m\o\n\t\h’ ); // 17:03:18 m is month
$today = date ( «H:i:s» ); // 17:16:18
$today = date ( «Y-m-d H:i:s» ); // 2001-03-10 17:16:18 (формат MySQL DATETIME)
?>

Для форматирования дат на других языках вместо функции date() можно использовать метод IntlDateFormatter::format() .

Примечания

Замечание:

Для получения метки времени из строкового представления даты можно воспользоваться функцией strtotime() . Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (например, функция MySQL » UNIX_TIMESTAMP).

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

Смотрите также

  • DateTimeImmutable::__construct() — Возвращает новый объект DateTimeImmutable
  • DateTimeInterface::format() — Возвращает дату, отформатированную согласно переданному формату
  • gmdate() — Форматирует дату/время по Гринвичу
  • idate() — Преобразует локальное время/дату в целое число
  • getdate() — Возвращает информацию о дате/времени
  • getlastmod() — Получает время последней модификации страницы
  • mktime() — Возвращает метку времени Unix для заданной даты
  • IntlDateFormatter::format() — Форматирует значение даты/времени в виде строки
  • time() — Возвращает текущую метку системного времени Unix
  • Предопределённые константы даты и времени

User Contributed Notes

  • Функции даты и времени
    • checkdate
    • date_​add
    • date_​create_​from_​format
    • date_​create_​immutable_​from_​format
    • date_​create_​immutable
    • date_​create
    • 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
    • date_​interval_​format
    • date_​isodate_​set
    • 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
    • date_​timestamp_​set
    • date_​timezone_​get
    • date_​timezone_​set
    • date
    • getdate
    • gettimeofday
    • gmdate
    • gmmktime
    • gmstrftime
    • idate
    • localtime
    • microtime
    • mktime
    • strftime
    • strptime
    • strtotime
    • time
    • timezone_​abbreviations_​list
    • timezone_​identifiers_​list
    • timezone_​location_​get
    • timezone_​name_​from_​abbr
    • timezone_​name_​get
    • timezone_​offset_​get
    • timezone_​open
    • timezone_​transitions_​get
    • timezone_​version_​get

    Источник

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