2015-09-17 5 views
1

У меня есть этот код:PHP Сравнение между датами

$val_datefrom = strtotime("2015-01-01"); 
$val_datefrom = date('Y-m-d',$val_datefrom); 

$val_dateto = strtotime("2015-09-30"); 
$val_dateto = date('Y-m-d',$val_dateto); 

$dsdate = strtotime("2015-01-07"); 
$dsdate = date('Y-m-d',$dsdate); 

echo $val_datefrom .'>='. $dsdate .'&&'. $val_dateto .'<='. $dsdate.'<br>'; 
var_dump($val_datefrom >= $dsdate && $val_dateto <= $dsdate); 
var_dump($val_datefrom >= $dsdate); 
var_dump($val_dateto <= $dsdate); 

if($val_datefrom >= $dsdate && $val_dateto <= $dsdate){ 
    // some codes if true 
} 

я уверен, мой код правильно дают точное значение, но все же это дает мне значение null .. Я пытался отладить свой код, и это результат для var_dump()

2015-01-01>=2015-01-07&&2015-09-30<=2015-01-07 
bool(false) bool(false) bool(false) 
2015-01-01>=2015-01-08&&2015-09-30<=2015-01-08 
bool(false) bool(false) bool(false) 

любое представление об этом?

+2

'если (($ val_datefrom> = $ dsdate) && ($ val_dateto <= $ dsdate))'? – aldrin27

+0

Почему бы просто не просто: '$ datetime1 = new DateTime ('2009-10-11'); $ datetime2 = новый DateTime ('2009-10-13'); $ interval = $ datetime1-> diff ($ datetime2); echo $ interval-> format ('% R% a days'); ' – NemanjaT

+0

Преобразуйте даты в метки времени и сравните их ... –

ответ

3

Хотя это другой подход, вы рассмотрели использование DateTime::diff()? Это простой способ сравнить даты в PHP.

OOP:

<?php 
$datetime1 = new DateTime('2009-10-11'); 
$datetime2 = new DateTime('2009-10-13'); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%R%a days'); 
?> 

Процедурный:

<?php 
$datetime1 = date_create('2009-10-11'); 
$datetime2 = date_create('2009-10-13'); 
$interval = date_diff($datetime1, $datetime2); 
echo $interval->format('%R%a days'); 
?> 

Выход:

+2 days 

Вы можете сделать, если заявление с этим без дополнительных шагов:

if(($val_datefrom->diff($dsdate)->format('%R%a') >= 0) 
&& ($val_dateto->diff($dsdate)->format('%R%a') <= 0)){ ... } 

Подробнее об этом here

Смежные вопросы