Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
strtotime
(PHP 3 >= 3.0.12, PHP 4, PHP 5)
strtotime - Преобразует текстовое представление даты на английском языке в метку времени Unix
Описание
int strtotime ( string time [, int now] )Первым параметром функции должна быть строка с датой на английском языке, которая будет преобразована в метку времени относительно метки времени, переданной в now, или текущего времени, если аргумент now опущен. В случае ошибки возвращается -1.
Функция strtotime() использует GNU формат даты Date Input Formats, где описывается синтаксис аргумента time.
Проверить работу функции strtotime:
Функция strtotime() может распознавать следующие слова и сокращения.
- Название месяцев: 12 месяцев и соответствующие сокращения: Январь - January, Февраль - February, Март - March, Апрель - April, Май - May, Июнь - June, Июль - July, Август - August, Сентябрь - September, Октябрь - October, Ноябрь - November, Декабрь - December.
- Название дней недели: 7 дней и соответствующие сокращения:Понедельник - Monday, Вторник - Tuesday, Среда - Wednesday, Четверг - Thursday, Пятница - Friday, Суббота - Saturday, Воскресенье - Sunday.
- Название единиц времени: year (год), month (месяц), fortnight (две недели), week (неделя), day (день), hour (час), minute (минута), second (секунда), am (до полудня), рт (после полудня).
- Некоторые английские слова: ago (тому назад), now (сейчас), last (длиться), next (следующий); this (этот), tomorrow (завтра), yesterday (вчера).
- Знаки "плюс" и "минус".
- Все числа.
- Временные зоны: например, gmt (Greenwich Mean Time — среднее время по Гринвичу) или pdt (Pacific Daylight Time — дневное тихоокеанское время).
Пример 1. Пример использования функции strtotime()
echo strtotime("now");
echo strtotime("22.01.1971 10:11:36");
echo strtotime("10 September 2000");
echo strtotime("+1 day");
echo strtotime("+1 week");
echo strtotime("+1 week 2 days 4 hours 2 seconds");
echo strtotime("next Thursday");
echo strtotime("last Monday");
echo strtotime('Monday this week');
echo strtotime('first day');
echo strtotime('last day next month');
echo strtotime('last day last month');
echo strtotime('2009-12 last day'); // это не сработает, если в обратном порядке год и месяц
echo strtotime('2009-03 last day');
echo strtotime('2009-03');
echo strtotime('last day of march 2009');
echo strtotime('last day of march');
echo strtotime('yesterday 14:00');
echo date("d.m.Y",strtotime("first day of previous month")); // первый день прошлого месяца
echo date("d.m.Y",strtotime("last day of previous month")); // последний день прошлого месяца
echo date("d.m.Y",strtotime("first day of this month")); // первый день текущего месяца
echo date("d.m.Y",strtotime("first day of next month")); // первый день следующего месяца
echo date('Y-m-d h:i:s',strtotime("-18 hours"));
echo strtotime("tomorrow"); # 24 часа от сегодня
echo strtotime("now + 24 hours");
echo strtotime("last Saturday");
echo strtotime("8pm + 3 days");
echo strtotime("2 weeks ago"); # две недели назад
echo strtotime("next year gmt"); # на один год вперед
echo strtotime ("tomorrow 4am"),
echo strtotime( date("Y-01-01") ); // начало года
echo strtotime( "next day 00:00" ); // начало следующего дня
Пример 2. Проверка ошибок
$str = 'Not Good';
if (($timestamp = strtotime($str)) === -1) {
echo "Строка ($str) недопустима";
} else {
echo "$str == " .date('l dS of F Y h:i:s A', $timestamp);
}
Замечание: Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битового целого со знаком). Для Windows допустимы даты с 01-01-1970 по 19-01-2038. Не все платформы поддерживают отрицательные метки времени, поэтому даты ранее 1 января 1970 г. не поддерживаются в Windows, некоторых версиях Linux и некоторых других операционных системах.
Замечание: GMT формат с помощью strtotime преобразуется некорректно:
$strtotime = strtotime("Tue, 21 May 2013 09:10:30 GMT");
echo date("Y-m-d H:i:s", $strtotime),PHP_EOL;
$strtotime = DateTime::createFromFormat("D, d M Y g:i:s O", "Tue, 21 May 2013 09:10:30 GMT");
echo $strtotime->format("Y-m-d H:i:s");
Смотрите также: Работа с датой и временем в PHP
Все функции строкиВсе функции дата
Описание на ru2.php.net
Описание на php.ru