Используем PHP функции даты для постройки машины времени

Используем PHP функции даты

От автора: недавно прочитал очередное творение фантастов о путешествиях во времени. Я думаю, что в будущем это станет возможно. При этом для установки даты и года «прибытия» будут использоваться функции программных языков. Например, PHP функции даты.

Немного о времени в PHP

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

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

Для большей части операционных систем самой «ранней» датой является 1901 год (13 декабря). Более «древнее» значение не стоит запрашивать, чтобы не получить в ответ сообщение об ошибке.

Хотя «крайние» параметры времени у каждой из платформ могут быть» специфическими». Например, для Windows – это 1970 год и 2038. Как видите, сильно во времени не разгонишься :) . Но для наших «изысканий» такого диапазона будет вполне достаточно.

Погружаемся во время PHP

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

<?php
echo time();
?>

Но существует менее «экзотический» способ узнать время и дату. Вернемся к date(). Я не буду описывать все флаги, которые можно передавать этой функции. Просто запомните, что флаги, передаваемые в качестве обязательного аргумента, задают формат отображения времени и даты, которые функция считывает с настроек сервера. Примеры использования:

Выводим дату-время в формате RFC 2822. Для этого используется флаг r:

<?php
echo date('r');
?>

Получаем временную зону, установленную на стороне сервера. Для этого нужно указать флаг T:

<?php
echo date('T');
?>

Если забыли, сколько дней в текущем месяце, тогда используйте флаг t:

<?php
echo date('t');
?>

Другие функции

Что-то мы с вами зациклились на одном средстве языка. Ведь существуют и другие PHP функции для даты и времени. Давайте быстро пробежимся по ним.

Если нужно отобразить на экране только дату, то для этого нужно применить функцию getdate(). Ее особенностью является то, что она возвращает ассоциативный массив со значениями времени и даты, поэтому для вывода нужно использовать функцию print_r():

<?php
$date1=getdate();
print_r($date1);
?>

Мы снова получили всю информации о текущей дате и времени. Хотя «заказывали» только календарные данные.

Придется явно указать, какие элементы массива мы хотим видеть на экране:

<?php
$date1=getdate();
print "{$date1['wday']} {$date1['month']} {$date1['year']}<br>";
?>

На самом деле в PHP функций для времени несколько. Вот еще одна – localtime(). Она также возвращает результат в виде массива, но теперь уже в виде обычного. Поэтому при выводе нужно указать порядок отображения элементов массива, чтобы можно было «нормально» ответить, сколько сейчас времени :) .

<?php
$time1=localtime();
print "$time1[2]:$time1[1]:$time1[0]";
?>

Напоследок хотелось бы дать дельный совет: если надумаете изобретать новую модель машины времени, то не забудьте воспользоваться функциями PHP. Это надежное и проверенное средство. Убедитесь в этом, когда окажетесь в будущем :) .

Курс по программированию на языке PHP

Изучите PHP с нуля до результата!

Смотреть курс

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree