(PHP 4, PHP 5)
strtotime — Прави разбор (parse) на каквото и да е английско описание за час и дата в Unix времеви отпечатък (timestamp)
Функцията очаква да й бъде даден низ, съдържащ дата в английски формат, и ще се опита да форматира този формат в 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.
Низът, на който ще се прави разбор, съгласно синтаксиса на GNU » форматите за дата. До PHP 5.0.0, микросекундите не бяха допустими, а от PHP 5.0.0 са позволени, но се игнорират.
Времевият отпечатък използван за изчисляване на връщаната стойност.
Връща времеви отпечатък при успех, иначе връща 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 това ограничение е преодоляно.