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

Рассмотрим, как работать с датами и временем в PHP.

Время в Unix-компьютерах

Для Unix-компьютеров начало отсчета времени –– полночь 1 января 1970 года. Любая дата вычисляется как количество секунд (обозначаемое timestamp –– метка времени), прошедших с 1.01.1970 года. Эти соглашения также используются в PHP. Например, мы хотим перейти на день вперед. Тогда нужно лишь добавить к текущему значению timestamp 60×60×24 секунд.

Такая схема учета времени существенно облегчает операции с датами. Например, если одно значение timestamp больше другого, первое значение соответствует более поздней дате, чем второе.

Единицы времени в сек

СекВремя
60Одна минута
3600Один час
288008 часов
86400Один день
604800Одна неделя

Получение текущего времени

В PHP для получения текущего значения timestamp надо вызвать функцию time() без параметров, например:

Сервера, Web и не только

Многие PHP-функции для работы с датой и временем в качестве аргумента принимают значение timestamp. Например, функция date() возвращает отформатированную в соответствии с заданным форматом строку даты, например:

				
					<?php
echo "<p>Отображение текущей даты: " . date('d-m-Y') . "</p>";
echo "<p>Отображение текущего времени: " . date('H:i:s') . "</p>";
echo "<p>Отображение текущей даты и времени: " . date('d-m-Y H:i:s') . "</p>";
echo "<p>Отображение текущей даты и времени в длинном формате: " . date('d F Y, D - g:i:s A') . "</p>";
?>
				
			
Символ в строке format Описание Пример возвращаемого значения
День
d День месяца с 2-мя цифрами от 01 до 31
D День недели в текстовом формате, 3 символа от Mon до Sun
z Порядковый номер дня в году (начиная с 0) От 0 до 365
Месяц
F Полное название месяца, например, January или March от January до December
m Порядковый номер месяца, 2 цифры от 01 до 12
M Сокращенное название месяца, 3 символа от Jan до Dec
Год
Y Порядковый номер года, 4 цифры Примеры: 19992019
y Порядковый номер года, 2 цифры Примеры: 9919
Время
a Ante meridiem (лат. «до полудня») или Post meridiem (лат. «после полудня») в нижнем регистре am или pm
A Ante meridiem или Post meridiem в верхнем регистре AM или PM
g Часы в 12-часовом формате от 1 до 12
G Часы в 24-часовом формате от 0 до 23
h Часы в 12-часовом формате от 01 до 12
H Часы в 24-часовом формате, 2 цифры от 00 до 23
i Минуты, 2 цифры от 00 до 59
s Секунды, 2 цифры от 00 до 59

Создание timestamp по дате

Функция mktime() создаст timestamp, если указать час, минуту, секунду, день месяца, месяц и год:

				
					int mktime ( [int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year]]]]]] )
				
			

Здесь используются следующие данные:

  • hour – Количество часов, прошедших с начала дня, указанного параметрами month, day и year.
  • minute – Количество минут, прошедших от начала часа, указанного параметром hour.
  • second – Количество секунд, прошедших от начала минуты, указанной параметром minute.
  • month – Количество месяцев, прошедших с конца предыдущего года.
  • day – Количество дней, прошедших с конца предыдущего месяца.
  • year – Номер года, может быть указан двумя или четырьмя цифрами.
Сервера, Web и не только

Функция strtotime()

Функция формирует timestamp для даты, указанной в виде фразы на английском, например April 1 или Friday.

Примеры:

Вызов 
strtotime(«Friday»)Пятница, полночь
strtotime(«2008-10-01»)1 октября 2008 г, полночь
strtotime(«-2 months»)Два месяца назад с текущего момента

Значение даты нужно задавать в формате ГГГГ-ММ-ДД. Если функция strtotime не может преобразовать дату, она возвращает false.

Примеры использования функции date( )

Сервера, Web и не только

Встроенная функция floor() используется для того, чтобы отбросить дробную часть результата.

Следующий текст при первом чтении можно пропустить

Форматы даты в базах данных MySQL

Формат timestamp в PHP несовместим с форматом timestamp в СУБД MySQL.

В MySQL есть три типа полей даты и времени: DATA (дата), TIME (время), DATETIME (дата и время). Также имеется специальный тип данных TIMESTAMP, который работает подобно DATETIME, но автоматически обновляется в соответствие с текущим временем при каждой вставке или обновлении записей таблицы.

Для преобразования timestamp в формате PHP в формат MySQL можно использовать такой код:

				
					date("Y-m-d H:i:s", $timestamp)
				
			

Например, можем использовать «2008-10-01 13:23:40» как дату и время.

Чтобы получить PHP-timestamp из запроса SELECT, надо использовать SQL- функцию UNIX_TIMESTAMP():

SELECT UNIX_TIMESTAMP(дата) FROM таблица

В MySQL есть много и других полезных функций для работы с датой и временем.

Свежие записи
Команда RD

Команда RD и RMDIR позволяют удалять как каталоги, так и

Web-Дизайн
help2site
Добавление пользователя Drupal

Войдя в админ-панель сайта. Если не помните, как прочитайте статью «вход в панель управления» В верхнем административном меню кликнете по пункту «пользователи» : Далее появиться

Web-Дизайн
help2site
Подборка тем для Drupal

Важность красивого и удобного дизайна сайта я думаю понятна каждому и углубляться в эту тему в этой статье мы не будем, сегодня мы поговорим о темах

Web-Дизайн
help2site
SEO Plugin by SQUIRRLY

Для того чтобы занять максимально высокие места в поисковых системах, ваш контент должен быть одновременно и SEO — дружественным и удобным для чтения. Squirrly является

Windows
help2site
Дефрагментация диска — решение скорости

Дефрагментация диска может быть идеальным решением для вашей системы, когда начинает замедляться её работа. Многие начинающие пользователи ПК, когда возникает подобная проблема, платят деньги, чтобы

Программы
help2site
Бесплатные приложения для ipad mini

Сегодня я желаю вам рассказать немного про Бесплатные приложения на ipad . Многие сайты выкладывают данные приложения в итоге при загрузке они требуют активации, и у меня

Оборудование
help2site
Материнская плата

Эта плата, та основа с помощью которой объединяются и совместно функционируют остальные комплектующие (части) компьютера. Слот PCI — используется для подключения различных плат, таких как