检查过去一个月或不检查 PHP



我很乐意帮助那些不能真正工作的代码我想看看该项目是否在上个月发布。如果是,则得到积极的结果。

    //$project_time="2012-08-01 13:43:49";
    $project_time="2012-10-02 14:05:09";
 $end=mktime(0,0,0,date("m",strtotime($project_time))+1,date("d",strtotime($project_time)),d    ate("y",strtotime($project_time)));
 $end=date("d.m.y",$end);
 $today=mktime(0,0,0,date("m"),date("d"),date("y"));
 $today=date("d.m.y",$today);    
echo 'Project date '.$date.'<br />';
echo 'End date '.$end.'<br />';
echo 'Today '.$today.'<br />';
if($today<$end){
  echo " open<br />";
}
else{
  echo " finish<br />";
}

PROJECT_TIME首先给出一个好的结果,另一个则不然。 $ 结束创建日期基于 $ PROJECT_TIME 加一个月。变量数据 TOTDAY 获取今天的日期。和比较我想从PROJECTTIME得到一个答案是否过去一个月

如果有人理解并可以提供帮助,我会很高兴。

strtotime是你想要使用的函数。只需使用以下语法:

$end = date('d.m.y', strtotime('+1 month', strtotime($project_time));

编辑

人们所说的比较字符串是正确的。不要比较字符串,比较时间戳。

尝试将其重写为:

$project_time = "2012-10-02 14:05:09";
$project_endtimestamp = strtotime('+1 month', strtotime($project_time));
echo 'Project date ' . $date . '<br />';
echo 'End date ' . date('d.m.y', $project_endtimestamp) . '<br />';
echo 'Today ' . date('d.m.y') . '<br />';
if (time() < $project_endtimestamp) {
    echo " open<br />";
} else {
    echo " finish<br />";
}

编辑:没有完全理解这个问题。根据日耳曼的回答strtotime通话中添加了+1 month@Simon。

基本问题:您正在比较两个"d.m.y"字符串。

这总是会失败,因为 PHP 将它们视为纯文本,而不是日期。因此,问哪个更大通常会给出错误的答案。

另外:使用旧式的日期处理功能摆脱所有疯狂。如今,PHP有更好的方法来做这种事情。

$project_time="2012-10-02 14:05:09";
$projDate = DateTime::createFromFormat('Y-m-d H:i:s', $project_time);
$dateNow = new DateTime();
if($projDate < $dateNow) {
    ... do something here...
}

相关内容

最新更新