使用date()函数提供有效性

时间:2010-09-19 20:56:26

标签: php

我创建了一个函数来确定“商品”当前是否有效。每个商品都有一个存储在数据库中的开始日期和结束日期,我使用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;
 }
}
?>

感谢您的帮助!

1 个答案:

答案 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;
 }
}