Наконец-то пришло время совершить прыжок! Приведенный ниже код используется для работы на PHP 5.6
Я перехожу на 7.1, и это не удается. Что я делаю неправильно?
$expectedToday = new DateTime();
$expectedToday->sub(new DateInterval('PT5H'));
$this->assertEquals($expectedToday, functionThatReturnsDateTimeSuccessfully()));
Я получаю
Failed asserting that two DateTime objects are equal.
--- Expected
+++ Actual
@@ @@
2019-03-15T08:35:21+0000
Так что функция ThatReturnsDateTimeSuccessful работает просто.
Однако, когда я закомментирую вторую строку
$expectedToday = new DateTime();
// $expectedToday->sub(new DateInterval('PT5H'));
$this->assertEquals($expectedToday, functionThatReturnsDateTimeSuccessfully()));
Я получаю
Failed asserting that two DateTime objects are equal.
--- Expected
+++ Actual
@@ @@
-2019-03-15T13:38:31+0000
+2019-03-15T08:38:31+0000
Так что мой вопрос - что я делаю не так? Почему sub выводит содержимое всего объекта DateTime? Если эта функция не работает, почему они не устаревают?
--- ОБНОВЛЕНИЕ ---
Та же проблема возникает , а не возникает при добавлении. Это только с саб.