почему strftime () на windows возвращает false? (я не использую% e)

Вот мой код:

var_dump(strftime("%m-%d-%Y %l:%M:%S", time())); echo "<br />"; var_dump(strftime("%Y-%d-%m %H:%M:%S", time())); 

Первая строка возвращает false, а третья возвращает ожидаемую строку '2012-10-09 23:03:18' (length = 19)

Почему первая строка возвращает false?

Я запускаю окна 7×64 и wamp с довольно стандартными настройками.

    Если первая строка не работает, а вторая делает, то причина, очевидно, связана с %l

     var_dump(strftime("%l", time())); 

    На самом деле, это ошибки.

    Чтение руководства по strftime …

    Не все спецификаторы преобразования могут поддерживаться вашей библиотекой C, и в этом случае они не будут поддерживаться PHP strftime (). Кроме того, не все платформы поддерживают отрицательные временные метки, поэтому ваш диапазон дат может быть ограничен не ранее, чем в эпоху Unix. Это означает, что% e,% T,% R и,% D (и, возможно, другие), а также даты до 1 января 1970 г. не будут работать в Windows, некоторых дистрибутивах Linux и нескольких других операционных системах. Для систем Windows полный список поддерживаемых спецификаторов конверсии можно найти на «MSDN».

    Поэтому %l является чистым, который не поддерживается.

    Находясь на моем локальном сервере WAMP, я нашел решение для %l не работает. После исправления %e , который является %#d , я тестирую с использованием %#I течение часа без предшествующего 0, и он работал безупречно. Таким образом, вы можете использовать это ваш код:

     var_dump(strftime("%m-%d-%Y %#I:%M:%S", time())); 

    К сожалению, это не работает в среде linux, оно будет выводить #I вместо часа.