Новый способ определения метки времени в PHP 5.3? - PullRequest
3 голосов
/ 01 сентября 2011

Есть ли в PHP 5.3 новый подход для определения метки времени?

this strtotime('0000-00-00');

вернет 0 дату (01.01.1970) в PHP до версии 5.3 и -62169984000 вPHP 5.3.И дата вроде 30/11 / -0001 !!

Но я не смог найти объяснений по этому поводу в документации.Любая идея изменилась или я что-то упустил?

1 Ответ

5 голосов
/ 01 сентября 2011

Объяснение здесь: https://bugs.php.net/bug.php?id=46597

To:

Конечно, но strtotime () долго обрабатывал недопустимые значения месяца и дня так же, как mktime ()эффективно «округляя» их до допустимых значений: 0-й день месяца становится последним днем ​​предыдущего месяца, 0-й месяц - последним месяцем предыдущего года и т. д.Учитывая эту интерпретацию, 0000-00-00 довольно очевидно становится последним днем ​​ноября года -1 (более известный как 2 до н.э.).

Нет никаких шансов, что поведение будет изменено сейчас: checkdate () - это гораздо лучший способ выявлять недействительные даты в любом случае, и это было бы потенциально неприятным нарушением обратной совместимости для людей, полагающихся на такое поведение в strtotime ().

...