Задать вопрос

Проверка как работает сайт в будущем

Возможно ли перевести дату чисто для php и mysql? Не меняя системного времени.

Например, на проекте идут ежемесячные платежи 1ого числа каждого месяца. Чтобы проверить что биллинг пройдёт нормально и оценить что произойдёт — мы можем только локально системное время переводить вперёд и смотреть что же будет.

Но тестировщикам как-то нужно проверять на своём сервере — там такое не проканает. И вообще какое-никакое автоматизированное тестирование сделать для подобных задач.

Есть ли решение этой проблемы?
  • Вопрос задан
  • 4335 просмотров
Подписаться 5 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
hell0w0rd
@hell0w0rd
Просто разработчик
чем более «там все это сложно» — тем сложнее вам прийдется поддерживать в будущем. Можно воспользоваться php.net/manual/ru/book.runkit.php, так можно подменить нативные функции php, и выдавать дату на месяц позже например. Хотя раз такая надобность — лучше бы вы сделали обертку на DateTime, которую можно мокать в тестах и делать с ней все что нужно
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Murloc
Как вариант можно в начале запроса менять время в системе на нужное, а в конце запроса ставить назад. Если же хотите в php, то для функции date(format,mktime) указать свой mktime, если используете класс DateTime уставить дату с помощью DateTime::setDate. Но лучше конечно менять время в системе если у вас что-то сложное и неподдающиеся изменению. Или же адаптировать ваш скрипт/программу для тестов.
Ответ написан
Комментировать
deMone
@deMone
Техдиректор — tech-director.ru
Зависит от того, каким образом вы запускаете каждого первого числа просчёт биллинга.

Скажем, если у вас просто в cron-е поставлен на выполнение какой-нибудь скрипт, его можно запустить вручную раньше назначенного времени. Проблем, впрочем, может оказаться очень много, ведь неизвестно, как именно написан ваш скрипт, и что случится если его запустить не вовремя.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽