datetime — Как получить формат даты в переполнении стека

Я делаю юнит-тест об этом методе

function stripTime($datetime) {
return new \DateTime($datetime->format('Y-m-d'));
}

и я хочу проверить, что возвращаемый результат (дата) имеет правильный формат Y-m-d

например :

$actual = $this->stripTime(new \DateTime);
$this->assertEqual('Y-m-d', $actual->getFormat());

я знаю getFormat Метод не существует, но мне нужно что-то вроде.

-1

Решение

Ваша функция возвращает DateTime объект, так что тест не имеет смысла. Вы бы лучше использовать assertInstanceOf чтобы проверить, что это объект DateTime и что для него установлено время по умолчанию, а не оригинальное DateTime объект имел.

В зависимости от настроек вашей системы этим значением по умолчанию может быть время сервера в момент создания объекта, 00:00:00 в текущем часовом поясе (по умолчанию системы или устанавливается date_default_timezone_set()) или 00:00:00 по Гринвичу.

Если вы хотите иметь полный контроль над этим, укажите это в вашей функции:

function stripTime($datetime) {
return new \DateTime($datetime->format('Y-m-d 00:00:00'), new \DateTimeZone('GMT'));
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector