Мне нужно создать интервал DateTime, чтобы сравнить его с разницей даты. Что-то вроде этого возможно?Создать временной интервал даты
$week = new \DateTime("1 week");
Мне нужно создать интервал DateTime, чтобы сравнить его с разницей даты. Что-то вроде этого возможно?Создать временной интервал даты
$week = new \DateTime("1 week");
Ну, вы можете использовать вместо DateInterval класс. В то время как вы не можете передать относительные timeformats, такие как '1 week'
в его конструктор непосредственно, есть полезный статический метод createFromDateString(), который поддерживает такой синтаксис:
$weekInterval = \DateInterval::createFromDateString('1 week');
Проблема заключается в том, что DateInterval
случаи не являются сопоставимыми в PHP (проверить this feature request для более подробной информации) :
$someInterval = (new \DateTime('2015-09-14'))->diff(new \DateTime('2015-09-13'));
var_dump($weekInterval > $someInterval); // false somehow
DateTime
экземпляры сопоставимы, однако. Таким образом, одним из возможных способов решения является сравнение результатов добавления двух DateInterval
к той же фиксированной дате. Например:
$now = new \DateTimeImmutable();
var_dump($now->add($weekInterval) > $now->add($someInterval)); // true
Eval.in demo.
Я думаю, что вы ищете является diff();
функция в DateTime
классе.
$dateOne = new DateTime('2015-10-11');
$dateTwo = new DateTime('2014-10-13');
$interval = $dateOne->diff($dateTwo);
echo $interval->format('%R%a days');
Сравнение UNIX TimeStamp
$dateTime = new DateTime("@" . $someOtherTimeStamp);
$endTime = new DateTime("@" . time());
$interval = $dateTime->diff($endTime);
Чтение Материал
Непонятно, что вы спрашиваете? Вы уже это пробовали? –
Прошу прощения, я просто попробовал то, что написал, и он работает. –