我创建了一个函数来确定“商品”当前是否有效。每个商品都有一个存储在数据库中的开始日期和结束日期,我使用date()函数来确定它是否有效。但是,我有一个问题,因为以下方案没有返回“TRUE”。我相信它应该返回“TRUE”。我没得到什么?
$start = 2010-9-18
$stop = 2010-10-10
// Current date is 2010-9-19
function is_active($start, $stop) {
$now = date("Y-n-d");
if($now >= $start && $now <= $stop) {
return true;
}
}
?>
感谢您的帮助!
答案 0 :(得分:2)
date()
返回一个字符串。字符串通过词典排序进行比较。在此排序中,9
大于10
,因为1<anything>
出现在9<anything>
之前。
一个简单的解决方法是使用Y-m-d
代替Y-n-d
,并将$start
记录为'2010-09-18'
。
$start = '2010-09-18';
$stop = '2010-10-10';
// Current date is 2010-9-19
function is_active($start, $stop) {
$now = date("Y-m-d");
if($now >= $start && $now <= $stop) {
return true;
}
}