Сравните dateTime Сейчас с датой в формате ("2019-01-01 00: 00: 00.000") - PullRequest
0 голосов
/ 08 января 2019

У меня есть дата из базы данных в виде 2019-06-20 00: 00: 00.000 что мне нужно сравнить с временем сейчас .. (+ 7 дней сбрасывается до полуночи) В частности, как:

if ($databasedatetime > $now){
}
else {}

пока я сделал это:

$now = new DateTime();
$now->format('Y-m-d H:i:s'); 
$now->getTimestamp();
$now->modify('midnight');
$now->modify('+7 day');

Но когда он пытается сравнить, я всегда получаю ложь, независимо от того, правда это или нет. Поэтому они не сравниваются правильно.

Моя функция now теперь нуждается в модификации, чтобы установить ее в формат "2019-01-01 00:00:00.000". так как в данный момент он печатается как 2019-01-15 00:00:00.000000","timezone_type":3,"timezone":"Europe\/London вместо

Любая помощь в преобразовании моей переменной $ now в "2019-01-01 00: 00: 00.000" будет высоко ценится

Ответы [ 4 ]

0 голосов
/ 08 января 2019

Использование var_dump($databasedatetime); Оказывается, $now было правильно в DateTime, но $databasedatetime была просто строкой. Следовательно, не может сравниться.

Так что конвертируйте $ databasedatetime в строку.

Я использовал

$Ddate=date_create($databasetimedate);
date_format($Ddate,"Y/m/d H:i:s.v");

Теперь я могу сравнить, как

if ($Ddate > $now){...
0 голосов
/ 08 января 2019

Попробуйте создать объект DateTime из строки, которая поступает из базы данных перед сравнением.

$time = strtotime($databasedatetime);
$databasetimeFormatted = date('Y-m-d H:i:s', $time);
if ($databasetimeFormatted > $now) {
    ...
}
0 голосов
/ 08 января 2019

есть метод createFromFormat для \ DateTime: http://php.net/manual/en/datetime.createfromformat.php

<?php
$date = \DateTime::createFromFormat("Y-m-d H:i:s.u", "2019-06-20 00:00:00.000");
$now = new \DateTime();
var_dump($date,$now);
var_dump($date > $now);
0 голосов
/ 08 января 2019
  • Сравните отметку времени, вы можете сделать это: if (new DateTime($databasedatetime) > $now){ } else {} преобразовать $databasedatetime в экземпляр DateTime для сравнения.
  • Если вы хотите преобразовать $now в формат, подобный «2019-01-01 00: 00: 00.000», вы можете попробовать $now->format('Y-m-d H:i:s.v')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...