Урок 4: Работа с датой и временем

В этом уроке мы попытаемся рассмотреть различные опции работы с датой и временем в PHP. На предыдущем занятии мы видели очень простые примеры того, что собой представляет РНР. В этом уроке мы более внимательно рассмотрим функцию документацияdate.

Функции даты и времени

В PHP имеется ряд функций для работы с датами и временем. В этом уроке разберём наиболее важную из этих функций: документацияdate.

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

date("y")
Возвращает текущий год даты - на сегодня возвращает: 24
date("m")
Возвращает текущий месяц даты - на сегодня возвращает: 04
date("F")
Возвращает текущий месяц даты - на сегодня возвращает: April
date("d")
Возвращает текущее число месяца даты - на сегодня возвращает: 23
date("l")
Возвращает название для недели даты - на сегодня возвращает: Tuesday
date("w")
Возвращает текущий день недели даты - на сегодня возвращает: 2
date("H")
Возвращает текущий час - в данное время возвращает: 20
date("i")
Возвращает текущую минуту - в данное время возвращает: 48
date("s")
Возвращает текущую секунду - в данное время возвращает: 13

Следующий пример иллюстрирует использование функции документацияdate:


	<html>
	<head>
	<title>Время и дата</title>

	</head>
	<body>

	<?php 
	
	echo "<p>Сегодня " . date("l") . "</p>";

	?>
	
	</body>
	</html>
	
	

Текущее время: 1713905293

Теперь держитесь крепче... немного притормозим! Функция документацияtime() возвращает текущее время в виде количества секунд, прошедших после 1 января 1970 года, 12:00 PM, GMT.


	<html>
	<head>
	<title>Время и  дата</title>
	</head>
	<body>

	<?php   

	echo "<p>Сейчас ровно " . time() . " секунд после January 1, 1970, 12:00 PM, GMT </ p> ";

	?>

	</body>
	</html>
	
	

Отображение в виде количества секунд после January 1, 1970, 12:00 PM GMT называется "timestamp/штамп времени" (UNIX timestamp), который весьма употребителен при работе с датой/временем будущего или прошлого.

По умолчанию функция документацияdate использует текущий timestamp (т. е. текущее значение документацияtime()). но с помощью дополнительного параметра вы можете специфицировать другой штамп времени и таким образом работать с прошлым или будущим. В следующем примере мы установим timestamp на 0 секунд после January 1, 1970 12:00 PM, GMT. Тогда можно узнать, каким днём недели было 1 января 1970 года.


	<html>
	<head>
	<title>Время и дата</title>
	</head>
	<body>

	<?php 
	
	echo "<p>1 января 1970 года - " . date("l",0) . "</p>";

	?>

	</body>
	</html>
	
	

Если вы не гений-математик, вам будет нелегко быстро перевести количество секунд после January 1, 1970 в в конкретное время прошлого или будущего. Но здесь вам поможет ещё одна функция: документацияmktime, выполняющая вычисления за вас.

Синтаксис функции документацияmktime таков (hour, minute, second, month, day, year). Следующий пример - конвертация первой фазы луны (July 21, 1969, 02:56):


	<html>
	<head>
	<title>время и дата</title>
	</head>
	<body>

	<?php  
	
	echo mktime (2,56,0,7,21,1969);

	?>

	</body>
	</html>
	
	

Заметьте, что возвращается отрицательное число, поскольку это дата ранее January 1, 1970.

Теперь можно объединить это с функцией документацияdate и определить, какой тогда был день недели.


	<html>
	<head>
	<title>Время и дата</title>
	</head>
	<body>

	<?php
	
	echo date("l", mktime(2,56,0,7,21,1969));
	
	?>
	
	</body>
	</html>
	
	

Для чего это можно использовать?

Всё это пока что может показаться несколько отвлечённым. Кроме того, для чего ещё модно в этой жизни использовать функцию вроде документацияtime()? И что ещё важнее: когда наконец вы узнаете что-то реально необходимое для ваших вэб-страниц?

Ответ: всё, что вы здесь изучаете - строительные блоки, и единственное, что может ограничивать вас, это ваше собственное творческое воображение! Рискну утверждать, что вы уже знаете больше, чем предполагаете. Например, вы в курсе, что можете сделать сайт с различными фоновыми изображениями для каждого дня недели и что это будет работать в любом браузере?

Это действительно правда! Посмотрите на пример:


	<html>
	<head>
	<title>Время и дата</title>
	</head>

	<body background="background_<?php echo date("w"); ?>.png">

	</body>
	</html>
	
	

Этот пример, с динамическим фоновым изображением, требует наличия семи изображений, именованных background_1.png, background_2.png, background_3.png, etc.

Если пользователь входит на ваш сайт во вторник, фоновым будет изображение background_2.png, на следующий день - background_3.png. Легко и просто!

На следующем уроке вы узнаете о о новых строительных блоках, которые можно использовать для создания циклов и повторов вашего кода.

PHP увлекателен, вы не находите?



<< Урок 3: Ваша первая РНР-страница

Урок 5: Циклы >>