Содержание:
Функции даты и функции времени php
Функции даты и времени в PHP позволяют получить дату и время с сервера, с которого запускается сценарий.
Рассмотрим основные функции даты и функции времени php.
Функция date в php
date($format);
Данная функция возвращает строку в виде даты и/или времени в указанном формате ($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) | — |
Пример:
1 2 3 4 5 6 7 8 | // выведет день недели в формате: 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 |
Функция используется совместно с функцией date():
Выполнение:
1 2 3 4 5 6 7 8 9 10 11 | $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 ]]]]]]] )
Аргументы могут быть опущены в порядке справа налево.
Выполнение:
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 |
Задание 1
- Создайте строковую переменную
now
- Создайте строковую переменную
birthday
- Присвойте переменной
now
значение метки времени актуальной даты (сегодня) - Присвойте переменной
birthday
значение метки времени Вашего дня рождения
Задание 2
- Выведите фразу «До моего дня рождения осталось «
- Выведите количество секунд, оставшееся до Вашего дня рождения
- Закончите фразу » секунд»
Дополните код:
1 | <!--?php ... ... ?--> |
Использование функций даты и времени
Часики
- Создайте строковую переменную
now
. - Присвойте переменной
now
значение метки времени актуальной даты (сегодня). - Создайте переменную
$H
и присвойте ей значение часов, выделенных из значения переменной$now
. - Создайте переменную
$i
и присвойте ей значение минут, выделенных из значения переменной$now
. - Показывать текущее время в виде: … часов…мин . Изменять окончание слова часов/часа/час в зависимости от кол-ва часов и минут.
Напоминание:
Time()
– возвращает текущее время
Date(format,время)
– возвращает время, заданного вторым параметром в указанном формате:
- Часы –
H
- Минуты –
i
Функция getdate в php
Функция getdate возвращает информацию о дате и/или времени
getdate ([$timemetka])
- Возвращается ассоциативный массив с информацией о параметре
timemetka
, который представляет собой метку времени.- Если параметр не использовать, то будет взято текущее локальное время.
Индексы ассоциативного массива:
Индекс | Описание | Пример значения |
---|---|---|
seconds |
Числовое представление секунд | от 0 до 59 |
minutes |
Числовое представление минут | от 0 до 59 |
hours |
Числовое представление часов | от 0 до 23 |
mday |
Порядковый номер дня месяца | от 1 до 31 |
wday |
Порядковый номер дня недели | от 0 (воскресенье) до 6 (суббота) |
mon |
Порядковый номер месяца | от 1 до 12 |
year |
Номер года, 4 цифры | Примеры: 1999, 2003 |
yday |
Порядковый номер дня в году | от 0 до 365 |
weekday |
Полное наименование дня недели | от Sunday до Saturday |
month |
Полное наименование месяца, например, January или March | от January до December |
0 | Количество секунд, прошедших с начала Эпохи Unix | В большинстве случаев от -2147483648 до 2147483647. |
Выполнение:
1 2 | $today = getdate(); print_r($today); |
Результат:
Array ( [seconds] => 54 [minutes] => 28 [hours] => 22 [mday] => 28 [wday] => 6 [mon] => 1 [year] => 2017 [yday] => 27 [weekday] => Saturday [month] => January [0] => 1485628134 )