Почему метка времени unix должна начинаться с префикса '@', чтобы функция strtotime() понимала ее?

Я заметил, что strtotime() странным образом обрабатывает временные метки unix, и мне было любопытно, знает ли кто-нибудь, почему это так:

var_export(strtotime('1330725042'));  // false
var_export(strtotime('@1330725042')); // 1330725042

Почему strtotime() возвращает false при задании временной метки unix (если указанная временная метка не имеет префикса @ )?

Это из внутренностей созданного мной библиотечного метода, который предназначен для «преобразования» переменной неизвестного формата в метку времени. Использование голой strtotime() в этом случае бесполезно, поскольку возвращает неверный результат, когда входящее значение на самом деле является отметкой времени.

Я переработал библиотечный метод, чтобы сделать явную проверку значения, похожего на метку времени, и вернуть его без изменений, так что... скажем так, у этого вопроса больше нет практического применения; Мне просто интересно.

6
задан 5 April 2012 в 23:46
поделиться