我搜索了这个主题并提出了一些答案,但它们似乎无法发挥作用。我是PHP的初学者,我需要创建一个变量,告诉客户原始订单日期是否早于当前日期的52天。这是我的工作不起作用
$orderdate = $row['OrderDate'];
if(strtotime('$orderdate')<= strtotime('-52 days')){
$pastdue ='This Order is older than 52 Days';
}else{
$pastdue ='This order is newer than 52 Days';
}
订单日期来自MySQL数据库,格式类似于&#39; 2014-12-11 08:45:56&#39;问题是,每当我在脚本中稍后回显$ pastdue变量时,它就会使用第一个变量&#39;此订单超过52天&#39;。如果订单介于0到52天之间,它将无法识别。我做错了什么想法?或者更好的方法呢? MySQL数据库中的字段是日期时间字段。
答案 0 :(得分:3)
基本PHP:'
- 引用字符串 NOT 插入变量:
if(strtotime('$orderdate')
^----------^
您将文字字符$
,o
,r
,d
等传递给strtotime(),当然不是有效日期。所以它会返回布尔值false,为了<=
比较,它将被转换为整数0。
对于基本&#34;传递变量作为参数&#34;像这样的函数调用,绝对没有理由使用引号:
if(strtotime($orderdate)
由于这一切都来自MySQL,你可以在mysql中进行检查,节省一些往返类型转换:
SELECT ... (datefield <= (CURDATE() - INTERVAL 52 DAY)) AS older, ...
然后您会得到一个简单的$row['older']
字段,其中包含0
或1