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 = 11
minutes = 49
hours = 3
mday = 19
wday = 3
mon = 7
year = 2023
yday = 199
weekday = Wednesday
month = July
0 = 1689727751
Сегодня: 19.7.2023

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

Читайте также:  Обозначение в программирование питон
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
");

Wednesday 19 July 2023 03:49
Сегодня Wednesday 19 July 2023 03:49:11
MSK

Еще примеры:

Источник

PHP занятие 6. Функции даты и времени

егэ разбор егэ разбор pascal уроки c уроки python уроки c++ уроки vb уроки lazarus уроки php уроки html уроки css уроки javascript уроки jquery и ajax уроки prolog уроки flash уроки

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

Рассмотрим основные функции даты и функции времени php.

Функция date в php

Данная функция возвращает строку в виде даты и/или времени в указанном формате ( $format ). Шаблон формата указывается в качестве аргумента функции.

Рассмотрим варианты символов, которые распознаются в параметре формат:

Символ в параметре format Описание Пример возвращаемого значения

Функция даты php
День
d День месяца: две цифры с первым нулём от 01 до 31
D День недели в словесном представлении, 3 символа от Mon до Sun
j День месяца без первого нуля от 1 до 31
l (строчная «L») Полное словесное название дня недели от Sunday до Saturday
N Порядковый номер дня недели от 1 (понедельник) до 7 (воскресенье)
S Сокращение порядкового числительного дня месяца: два символа st, nd, rd или
th. Применяется вместе с j
w Порядковый номер дня недели от 0 (воскресенье) до 6 (суббота)
z Порядковый номер дня в году (начиная с 0) От 0 до 365
Неделя
W Порядковый номер недели года: недели начинаются с понедельника 33 (33-я неделя года)
Месяц
F Полное словесное название месяца, например May от January до December
m Порядковый номер месяца с первым нулём от 01 до 12
M Сокращенное словесное название месяца: три символа от Jan до Dec
n Порядковый номер месяца без первого нуля от 1 до 12
t Количество дней в указанном месяце от 28 до 31
Год
L Указывает на високосный год 1, если год високосный, иначе 0.
o Номер года 1999 или 2003
Y Порядковый номер года: четыре цифры 1998, 2008
y Номер года: две цифры 98, 08
Функции времени php
a Ante meridiem (с англ. «до полудня») или Post meridiem (с англ. «после полудня») am или pm
A Ante meridiem или Post meridiem заглавными буквами AM или PM
B Время в формате Интернет-времени от 000 до 999
g Часы в 12-часовом формате без первого нуля от 1 до 12
G Часы в 24-часовом формате без первого нуля от 0 до 23
h Часы в 12-часовом формате с первым нулём от 01 до 12
H Часы в 24-часовом формате с первым нулём от 00 до 23
i Минуты с первым нулём от 00 до 59
s Секунды с первым нулём от 00 до 59
u Микросекунды Например, 654321
v Миллисекунды Например, 654
Временная зона
e Код шкалы временной зоны Например, UTC, GMT
I (заглавная i) Признак летнего времени 1, если дата соответствует летнему времени, 0 в противном случае.
Полная дата/время
c Дата в формате, указанном в примере 2006-05-12T15:19:21+00:00
r Дата в формате, указанном в примере Например: Thu, 23 Dec 2010 18:05:07 +0200
U Количество секунд, прошедших с начала Эпохи Unix (с 1 января 1970 00:00:00 GMT)
// выведет день недели в формате: Saturday echo date("l"); // выведет дату в формате 2017-01-28 echo date('Y-m-d'); // выведет дату и время в формате: Saturday 8th of August 2016 06:13:44 PM echo date('l jS \of F Y h:i:s A');

// выведет день недели в формате: Saturday echo date(«l»); // выведет дату в формате 2017-01-28 echo date(‘Y-m-d’); // выведет дату и время в формате: Saturday 8th of August 2016 06:13:44 PM echo date(‘l jS \of F Y h:i:s A’);

Функция time и mktime в php

time — возвращает количество секунд, прошедших с начала Эпохи Unix (c 1 января 1970 00:00:00 GMT) до текущего времени

Функция не предназначена для вывода результата в виде даты или времени, а используется совместно с другими функциями.
Пример использования функции в «чистом виде»:

$now = time(); // метка текущей даты echo $now; // выведет что-то типа 1485618140 $nextWeek = time() + (7 * 24 * 60 * 60); // 7 дней; 24 часа; 60 минут; 60 секунд echo $nextWeek; // выведет что-то типа 1486222940

$now = time(); // метка текущей даты echo $now; // выведет что-то типа 1485618140 $nextWeek = time() + (7 * 24 * 60 * 60); // 7 дней; 24 часа; 60 минут; 60 секунд echo $nextWeek; // выведет что-то типа 1486222940

Функция используется совместно с функцией date():

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

$now = time(); $nextWeek = time() + (7 * 24 * 60 * 60); // Сейчас: 2017-01-28 echo 'Сейчас: '. date('Y-m-d') ."\n"; // Сейчас: 2017-01-28 echo 'Сейчас: '. date('Y-m-d', $now) ."\n"; // Следующая неделя: 2017-02-04 echo 'Следующая неделя: '. date('Y-m-d', $nextWeek) ."\n";

$now = time(); $nextWeek = time() + (7 * 24 * 60 * 60); // Сейчас: 2017-01-28 echo ‘Сейчас: ‘. date(‘Y-m-d’) .»\n»; // Сейчас: 2017-01-28 echo ‘Сейчас: ‘. date(‘Y-m-d’, $now) .»\n»; // Следующая неделя: 2017-02-04 echo ‘Следующая неделя: ‘. date(‘Y-m-d’, $nextWeek) .»\n»;

Функция используется совместно с функцией mktime:

mktime — возвращает метку времени Unix для указанной даты

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

Аргументы могут быть опущены в порядке справа налево.

функции mktime и date в php

Рис. 6.1. Использование функции mktime и date

Пример: вывести на экран текущие полную дату и время, затем дату и время завтрашнего дня, следующего месяца того же дня и той же даты прошлого года

1 2 3 4 5 6 7 8 9 10 11 12 13 14
//Вывод текущей даты и времени echo date("r"); //Sat, 28 Jan 2017 19:58:45 +0400 // создаем метку для "завтра" $tomorrow = mktime(0,0,0,date("m"),date("d")+1, date("Y")); echo date("r", $tomorrow); // Sun, 29 Jan 2017 00:00:00 +0400 // создаем метку для "следующий месяц" $nextmonth = mktime(0,0,0,date("m")+1,date("d"), date("Y")); echo date("r", $nextmonth ); //Tue, 28 Feb 2017 00:00:00 +0400 // создаем метку для "прошлый год" $lastyear= mktime(0,0,0,date("m")+1,date("d"), date("Y")-1); echo date("r", $lastyear); //Sun, 28 Feb 2016 00:00:00 +0400

//Вывод текущей даты и времени echo date(«r»); //Sat, 28 Jan 2017 19:58:45 +0400 // создаем метку для «завтра» $tomorrow = mktime(0,0,0,date(«m»),date(«d»)+1, date(«Y»)); echo date(«r», $tomorrow); // Sun, 29 Jan 2017 00:00:00 +0400 // создаем метку для «следующий месяц» $nextmonth = mktime(0,0,0,date(«m»)+1,date(«d»), date(«Y»)); echo date(«r», $nextmonth ); //Tue, 28 Feb 2017 00:00:00 +0400 // создаем метку для «прошлый год» $lastyear= mktime(0,0,0,date(«m»)+1,date(«d»), date(«Y»)-1); echo date(«r», $lastyear); //Sun, 28 Feb 2016 00:00:00 +0400

  1. Создайте строковую переменную now
  2. Создайте строковую переменную birthday
  3. Присвойте переменной now значение метки времени актуальной даты (сегодня)
  4. Присвойте переменной birthday значение метки времени Вашего дня рождения
  1. Выведите фразу «До моего дня рождения осталось «
  2. Выведите количество секунд, оставшееся до Вашего дня рождения
  3. Закончите фразу » секунд»

Дополните код:

Источник

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