Функции за дата и час
PHP Manual

strtotime

(PHP 4, PHP 5)

strtotime Прави разбор (parse) на каквото и да е английско описание за час и дата в Unix времеви отпечатък (timestamp)

Описание

int strtotime ( string $time [, int $now ] )

Функцията очаква да й бъде даден низ, съдържащ дата в английски формат, и ще се опита да форматира този формат в Unix времеви отпечатък относителен спрямо отпечатъка, (броят на секундите от January 1 1970 00:00:00 GMT), даден в now или текущото време ако не е подаден такъв.

Функцията ще използва променливата на обкръжението TZ (ако е достъпна) за да изчисли времевият отпечатък. От PHP 5.1.0 има по-лесни начин за дефиниране на часовата зона, които се ползват пт всисчки функции за дата и час. Процесът е обяснен на страницата на функция date_default_timezone_get().

Забележка: Ако годината е указана чрез двуцифрен формат, стойностите между 00-69 се интерпретират като 2000-2069, а между 70-100 - като 1970-1999.

Параметри

time

Низът, на който ще се прави разбор, съгласно синтаксиса на GNU » форматите за дата. До PHP 5.0.0, микросекундите не бяха допустими, а от PHP 5.0.0 са позволени, но се игнорират.

now

Времевият отпечатък използван за изчисляване на връщаната стойност.

Връщани стойности

Връща времеви отпечатък при успех, иначе връща FALSE. До PHP 5.1.0, функцията връща -1 при неуспех.

Грешки/Изключения

Всяко извикване на функция за дата и час ще генерира E_NOTICE , ако часовият пояс не е валиден, и/или E_STRICT съобщение ако се използват настройките на системата или променливата на обкръжението TZ. Вж. също date_default_timezone_set()

Дневник на промените

Версия Описание
5.1.0 Връща FALSE при неуспех, вместо -1.
5.1.0

Вече генерира E_STRICT и E_NOTICE грешки за часовият пояс.

Примери

Example #1 Примери за strtotime()

<?php
echo strtotime("now"), "\n";
echo 
strtotime("10 September 2000"), "\n";
echo 
strtotime("+1 day"), "\n";
echo 
strtotime("+1 week"), "\n";
echo 
strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo 
strtotime("next Thursday"), "\n";
echo 
strtotime("last Monday"), "\n";
?>

Example #2 Проверка за неуспех

<?php
$str 
'Не е добре';
// до PHP 5.1.0 сравняването се извършва с -1, вместо с false
if (($timestamp strtotime($str)) === false) {
    echo 
"Низът ($str) е фалшив";
} else {
    echo 
"$str == " date('l dS \o\f F Y h:i:s A'$timestamp);
}
?>

Бележки

Предупреждение

В PHP 5 до 5.0.2, "now" и други относителни времена се изчисляваха грешно от полунощ на текущия ден. Различава се от другите версии, където се изчислява от текущото време.

Предупреждение

До 4.4.0, "next" се изчислява неправилно като +2. Типичното решение а това е да се използва "+1".

Забележка: Валидната област за времеви отпечатък е обикновено от петък, 13 декември 1901 20:45:54 GMT до вторник, 19 януари 2038 03:14:07 GMT. (Това са датите, отговарящи на минималната и максималната стойности за 32-битово знаково цяло число.) В допълнение, не всички платформи поддържат отрицателни времеви отпечатъци, затова вашата област от дати може да бъде ограничена до не по-рано от Unix епохата. Това означава, че дати преди 1 януари 1970 няма да работят на Windows, някои Linux дистрибуции, както и на няколко други операционни системи. От PHP 5.1.0 това ограничение е преодоляно.

Вж. също


Функции за дата и час
PHP Manual