Добавить в корзинуПозвонить
Найти в Дзене
WebTechnology

Работа с датой и временем в PHP

Очевидно, что очень часто программистам приходится работать с датой и временем. Самый простой пример - это дата и время отправки сообщения на форуме. И, разумеется, такие вещи могут реализоваться на PHP, тем более, что возможностей по работе с датой и временем в PHPочень много. Базовая функция, связанная с датой и временем в PHP, - это функция time(), которая возвращает количество секунд, прошедших с полуночи 01.01.1970 (зарождение эпохи Unix): <?php
  echo time();
?> Запустив данный скрипт, Вы узнаете, сколько секунд прошло с полуночи 01.01.1970 до момента вызова функции time() в Вашем скрипте. Разумеется, помимо этой базовой функции, которая присутствует во всех языках программирования, где можно работать с датой и временем (по крайней мере, среди тех, которые я знаю), существует и другая функция, которая называется getdate(): <?php
  $datetime = getdate();
foreach ($datetime as $k=>$v)
    echo "$k - $v<br />";
?> Запустив данный скрипт, Вы увидите набор ключей в массиве и их соо

Очевидно, что очень часто программистам приходится работать с датой и временем. Самый простой пример - это дата и время отправки сообщения на форуме. И, разумеется, такие вещи могут реализоваться на PHP, тем более, что возможностей по работе с датой и временем в PHPочень много.

Базовая функция, связанная с датой и временем в PHP, - это функция time(), которая возвращает количество секунд, прошедших с полуночи 01.01.1970 (зарождение эпохи Unix):

<?php
  echo time();
?>

Запустив данный скрипт, Вы узнаете, сколько секунд прошло с полуночи 01.01.1970 до момента вызова функции time() в Вашем скрипте.

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

<?php
  $datetime = getdate();
foreach ($datetime as $k=>$v)
    echo "$k - $v<br />";
?>

Запустив данный скрипт, Вы увидите набор ключей в массиве и их соответствующих значений (заодно, повторили конструкцию foreach). Думаю, что теперь для Вас не составит труда узнать любые данные, связанные с датой и временем. Например, чтобы вывести текущее время, необходимо написать следующий код:

<?php
  $datetime = getdate();
  echo $datetime['hours'].":".$datetime['minutes'].":".$datetime['seconds'];
?>

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

<?php
  $datetime = getdate(152353232);
  echo $datetime['year'];
?>

В результате, Вы увидите 1974-ый год.

Также существует функция date(). Я рекомендую посмотреть описание по ней в справочнике, так как данная функция принимает весьма сложный параметр, который задаёт формат вывода даты. Элементов форматирования чуть больше 30-ти штук. И в примере ниже я приведу несколько из них, а остальные посмотрите в справочнике, потому что их запоминать не нужно, но ознакомиться с ними крайне желательно. А принцип их использования знать обязательно, и о нём следующий пример:

<?php
  echo date("Сегодня d.m.Y H:i:s");
?>

В результате, Вы увидите что-то наподобие этого: "Сегодня 15.11.2010 21:44:24". Также у функции date() есть ещё второй необязательный параметр, задающий timestamp, как раз та величина, равная количеству секунд, прошедших с полуночи 01.01.1970. Пример использования второго параметра:

<?php
  echo date("Когда-то было d.m.Y H:i:s", 5393235329);
?>

Также существует функция gmdate(), которая является полным аналогом функции date(), но функция gmdate() показывает время не по часовому поясу сервера, на котором работает скрипт, а по Гринвичу. Очевидно, что с помощью этой функции надо сохранять всю информацию о дате и времени, которую видит пользователь, а при выводе нужно подстраиваться под часовой пояс каждого пользователя (в идеале, конечно):

<?php
  echo gmdate("Сейчас на Гринвиче D M j H:i:s T Y")
?>

В результате, Вы увидите примерно следующее: "Mon Nov 15 18:52:45 GMT 2010". Разумеется, у Вас будет выведена уже другая дата, но в аналогичном формате. Также я настоятельно рекомендую залезть в справочник и просто ознакомиться с другими элементами даты и времени в PHP (я привёл только треть), так как функции date() и gmdate() - это самый простой и самый быстрый способ получить дату и время в практически любом формате.