Как изменить местное время для тестирования? - PullRequest
4 голосов
/ 19 января 2011

Я пишу скрипт, который основан на текущем времени и работает нормально, но я не хочу ждать, так что я могу видеть, если скрипт работает завтра, через 2, 3, 4 дня или год.

Есть ли способ обмануть сервер apache (используя предпочтительный php), думая, что сейчас другое время? : -)

И если да, то легко ли исправить без каких-либо последствий?

Ответы [ 2 ]

4 голосов
/ 19 января 2011

Я предполагаю, что на каком-то уровне внутри вашего скрипта вы используете функцию time , чтобы получить текущее время? (Если нет, скорее всего, так и должно быть.)

Если это так, просто замените вызов времени на вызов mktime , установите в будущем соответствующую дату / время.

В худшем случае (если вы не используете скрипт PHP), можно просто изменить текущую системную дату / время, используя системную команду "date" ("man date" для подробностей), если вы работаете в Unix / Linux или соответствующую панель управления / настройки системы и т. Д., Если вы используете Windows / Mac OS X и т. Д. Однако я бы не советовал делать это, если вы не используете частный тестовый сервер.

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

1 голос
/ 19 января 2011

Согласитесь с middaparka - смена локального времени - это хорошо, если вы запускаете свой скрипт локально, но как насчет того, когда он запускается на сервере, потому что это зависит от данных / сеанса / чего-то еще?

Ответ заключается в том, чтобы просто установить переменную в верхней части вашего скрипта с именем $ time и установить ее в time (), а затем использовать $ time в вашем скрипте вместо time ().Затем, когда вы хотите изменить время тестирования, вам нужно изменить только одну строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...