Php 是否检查上个月

Php 是否检查上个月,php,date,time,Php,Date,Time,我很乐意帮助那些不起作用的代码 我想看看这个项目是不是上个月出版的。 如果是,则得到肯定的结果 //$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($pro

我很乐意帮助那些不起作用的代码 我想看看这个项目是不是上个月出版的。 如果是,则得到肯定的结果

    //$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=“2012-08-01 13:43:49”;
$project_time=“2012-10-02 14:05:09”;
$end=mktime(0,0,0,日期(“m”,strotime($project\u time))+1,日期(“d”,strotime($project\u time)),日期(“y”,strotime($project\u time));
$end=日期(“年月日,$end”);
$today=mktime(0,0,0,日期(“m”)、日期(“d”)、日期(“y”);
$today=日期(“年月日,$today”);
回显“项目日期”。$日期。“
”; 回显“结束日期”。$End.
; 回显“今天”。$Today.

如果($todaystrotime是您想要使用的函数,只需使用以下语法:

$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 />";
}
$project\u time=“2012-10-02 14:05:09”;
$project_endtimestamp=strottime('+1个月',strottime($project_time));
回显“项目日期”。$日期。“
”; 回显“结束日期”。日期('d.m.y',$project_endtimestamp)。“
”; 回音“今天”。日期(“d.m.y”)。
; if(time()<$project\u endtimestamp){ 回显“打开
”; }否则{ 回显“完成
”; }

编辑:没有完全理解问题。在
strotime
中添加了
+1个月的
,根据@Simon Germain的回答进行呼叫。

基本问题:您正在比较两个“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...
}
$project\u time=“2012-10-02 14:05:09”;
$projDate=DateTime::createFromFormat('Y-m-d H:i:s',$project\U time);
$dateNow=new DateTime();
如果($projDate<$dateNow){
…在这里做点什么。。。
}

if($todayPROJECT\u TIME)作为时间戳列在数据库中。现在我需要检查它是否在注册一个月后。除了你的问题,你不能使用strotime($project\u TIME);来获取$end时间戳吗?