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

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

php

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

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

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

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

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

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

 

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

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

1_21

1_22

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

1_23

1_24

1_25

1_26

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

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

 1_27

1_28

 

Функция strtotime()

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

Примеры:

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

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

 

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

1_29

1_292

Встроенная функция 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 есть много и других полезных функций для работы с датой и временем.

Отставить отзыв

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