Краткий ответ: Не совсем.
Длинный ответ:
Существует множество различных стандартов ( RFC850, RFC822, ISO8601 и многие другие) для выражения дат в различных строковых форматах. Есть также метки времени UNIX. Чтобы выполнить любое преобразование даты в PHP, вы обычно должны проходить метки времени UNIX. PHP может преобразовать практически любое стандартизированное текстовое представление даты в метку времени UNIX, используя strtotime
.
Дата в вашем PHP-приложении может находиться в одном из двух состояний:
- строковое представление, более или менее читаемое и легко взаимозаменяемое между различными средами (база данных / PHP, XML / PHP и т. Д.), Но не управляемое (сложение / вычитание / сравнение)
- метка времени UNIX или
DateTime
объект (если вы используете PHP> = 5.2 и хотите его использовать), которым можно манипулировать, но он бесполезен для людей
Вы обычно конвертируете даты из одного состояния в другое во время ввода, манипулирования и вывода.
Чтобы преобразовать дату из одного текстового формата в другой, вы обычно читаете ее с помощью strtotime
и переформатируете полученную временную метку в нужный вам формат.
date(DATE_RFC822, strtotime('2010-01-12 03:52:12'));
date('l jS \of F Y h:i:s A', strtotime('2010-01-12 03:52:12'));
$timestampA = strtotime('2010-01-12 03:52:12');
$timestampB = strtotime('2011-02-05 02:00:31');
if ($timestampA < $timestampB) {
...
}
Вы могли бы сказать, что метки времени UNIX являются универсальным форматом, но на самом деле универсального формата даты не существует. Вы не должны хранить метки времени UNIX в базе данных, а использовать собственные поля MySQL DATETIME
(или DATE
или TIME
). При извлечении этих DATETIME
полей из базы данных вы получите их в предпочтительном текстовом формате MySQL Y-m-d H:i:s
. Преобразуйте это, как описано выше, в «читаемый человеком» формат, который вы желаете.