PHP日期间

问题描述:

需要请检查是否给定的日期是在使用PHP两个给定日期之间,这是我写的代码:PHP日期间

$today = date_create('28-Feb-2012'); 
$fromdate = date_create('20-Feb-2012'); 
$todate = date_create('22-Feb-2012'); 
if ($today>=$fromdate && $todat<=$todate) 
{ 
    echo 'in range'; 
} 
else 
{ 
    echo 'not in range'; 
} 

但这总是返回in range。找不到问题出在哪里。请帮忙。

我知道这是一个有点哈克的解决方案,但我倾向于使用的strtotime()的之类的话,因为它返回一个整数:

$today = time(); 
$fromdate = strtotime('20-Feb-2012'); 
$todate = strtotime('22-Feb-2012'); 
if ($today>=$fromdate && $today<=$todate) 
{ 
    echo 'in range'; 
} 
else 
{ 
    echo 'not in range'; 
} 

编辑:我假设$todat只是一个输入到*中,并且在你的代码中你实际上有$today,但如果不是这可能是你的问题 - 我相信在一些设置中未定义的变量可以被认为是0。

+0

其实$ todate是我的代码中的一个错字:。谢谢你指出。你的代码工作正常,我正在使用它。谢谢。 – Nalaka526 2012-02-19 02:53:00

+1

你可能会考虑改变你在php.ini中的设置来发出警告你使用的是未定义的变量。是的,你必须用变量定义来代码,但是它比偶尔打印一个变量并默认默认为0或false,并且不知道你的代码不工作 – Mala 2012-02-19 03:37:42

+1

FYI :改为'$ fromdate = strtotime('20 -Feb-2012'。'-1 days');'让它选择同一天 – Nalaka526 2012-02-19 04:10:41