Одно предупреждение, основанное на моем опыте, , если ваша цель связана только с датой, тогда будьте внимательны, указав отметку времени . Например, скажем, сегодня это "2016-11-09"
. Сравнение с использованием временной метки аннулирует здесь логику. Пример,
// input
$var = "2016-11-09 00:00:00.0";
// check if date is today or in the future
if ( time() <= strtotime($var) )
{
// This seems right, but if it's ONLY date you are after
// then the code might treat $var as past depending on
// the time.
}
Код выше кажется правильным, но если это ТОЛЬКО дата, которую вы хотите сравнить, то приведенный выше код не является правильной логикой. Почему? Потому что time () и strtotime () будут содержать метку времени. То есть, хотя обе даты приходятся на один и тот же день, разница во времени будет иметь значение. Рассмотрим пример ниже:
// plain date string
$input = "2016-11-09";
Поскольку ввод является строкой с простой датой, использование strtotime()
для $input
будет предполагать, что это полночь 2016-11-09. Таким образом, выполнение time()
в любое время после полуночи всегда будет обрабатывать $input
как прошлое, даже если они находятся в один и тот же день.
Чтобы это исправить, вы можете просто написать код, например:
if (date("Y-m-d") <= $input)
{
echo "Input date is equal to or greater than today.";
}