Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中比较日期和月份_Php_Date_Time - Fatal编程技术网

在PHP中比较日期和月份

在PHP中比较日期和月份,php,date,time,Php,Date,Time,我有以下代码,它从数据库中的时间戳中获取日期,然后将其与特定日期进行比较,并相应地将变量设置为某个值: $leavedate=$this->leavedate; $leavestamp=strtotime($leavedate[0]['LoppumisPvm']); $leave=date('d M',$leavestamp); echo "the leave is: ".$leave; //this one prints: 12 Apr

我有以下代码,它从数据库中的时间戳中获取日期,然后将其与特定日期进行比较,并相应地将变量设置为某个值:

    $leavedate=$this->leavedate;
    $leavestamp=strtotime($leavedate[0]['LoppumisPvm']);
    $leave=date('d M',$leavestamp);
    echo "the leave is: ".$leave; //this one prints: 12 Apr

        $leavequarter="";
       if(strtotime($leave)>= strtotime('01 Jan') && strtotime(($leave)<= strtotime('15 Jan'))){$leavequarter=1;}
       elseif(strtotime($leave)>= strtotime('01 Apr') && strtotime(($leave)<= strtotime('15 Apr'))){$leavequarter=2;}
       elseif(strtotime($leave)>= strtotime('01 Jul') && strtotime(($leave)<= strtotime('15 Jul'))){$leavequarter=3;}
       elseif(strtotime($leave)>= strtotime('01 Oct') && strtotime(($leave)<= strtotime('15 Oct'))){$leavequarter=4;}


    echo $leavequarter;
$leavedate=$this->leavedate;
$leavestamp=strotime($leavedate[0]['LoppumisPvm']);
$leave=日期('d M',$leavestamp);
echo“请假是:”.$请假//这张打印日期:4月12日
$25=“”;

如果(strotime($leave)>=strotime('01 Jan')&&strotime($leave)=strotime('01 Apr')&&strotime($leave)=strotime('01 Jul')&&strotime($leave)&strotime($leave)您的代码嵌套错误:

elseif(strtotime($leave)>= strtotime('01 Apr') && strtotime(($leave)<= strtotime('15 Apr')))

elseif(strotime($leave)>=strotime('01 Apr')&&strotime($leave)=strotime('01 Apr')&&strotime($leave)语法错误第三个strotime得到了双精度((包括第二个状态)

   if(strtotime($leave)>= strtotime('01 Jan') && strtotime($leave)<= strtotime('15 Jan')){$leavequarter=1;}
   elseif(strtotime($leave)>= strtotime('01 Apr') && strtotime($leave)<= strtotime('15 Apr')){$leavequarter=2;}
   elseif(strtotime($leave)>= strtotime('01 Jul') && strtotime($leave)<= strtotime('15 Jul')){$leavequarter=3;}
   elseif(strtotime($leave)>= strtotime('01 Oct') && strtotime($leave)<= strtotime('15 Oct')){$leavequarter=4;}

如果(strotime($leave)>=strotime('01 Jan')&&strotime($leave)=strotime('01 Apr')&&strotime($leave)=strotime('01 Jul')&&strotime($leave)=strotime('01 Oct')&&strotime($leave)首先,我不会用strotime做所有的事情。这会消耗资源,而且取决于地区

最好使用date函数

$leavedate = $this->leavedate;
$leavestamp = strtotime($leavedate[0]['LoppumisPvm']);
$leave = date('d M', $leavestamp);
echo "the leave is: " . $leave; //this one prints: 12 Apr

$leavequarter = "";
if (date('m', $leavestamp) == 1 && date('d', $leavestamp) >= 1 && date('d', $leavestamp) <= 15)
{
    $leavequarter = 1;
}
elseif (date('m', $leavestamp) == 4 && date('d', $leavestamp) >= 1 && date('d', $leavestamp) <= 15)
{
    $leavequarter = 2;
}
elseif (date('m', $leavestamp) == 7 && date('d', $leavestamp) >= 1 && date('d', $leavestamp) <= 15)
{
    $leavequarter = 3;
}
elseif (date('m', $leavestamp) == 10 && date('d', $leavestamp) >= 1 && date('d', $leavestamp) <= 15)
{
    $leavequarter = 4;
}


echo $leavequarter;
请尝试以下代码:

if((strtotime($leave)>= strtotime('01 Jan')) && (strtotime($leave)<= strtotime('15 Jan'))){$leavequarter=1;}
    elseif((strtotime($leave)>= strtotime('01 Apr')) && (strtotime($leave)<= strtotime('15 Apr'))){$leavequarter=2;}
    elseif((strtotime($leave)>= strtotime('01 Jul')) && (strtotime($leave)<= strtotime('15 Jul'))){$leavequarter=3;}
    elseif((strtotime($leave)>= strtotime('01 Oct')) && (strtotime($leave)<= strtotime('15 Oct'))){$leavequarter=4;}   
echo $leavequarter;

if((strotime($leave)>=strotime($01 Jan')和(&(strotime($leave)=strotime($01 Apr'))和(&(strotime($leave)=strotime($01 Jul'))和(&&(strotime($leave)@AdamD,谢谢,但不……)没有效果。@AdamD:请注意,仅当使用上述示例中的花括号时,elseif和else if才会被视为完全相同。使用冒号定义if/elseif条件时,不能将else if分隔为两个单词,否则PHP将因分析错误而失败
$leavedate = $this->leavedate;
$leavestamp = strtotime($leavedate[0]['LoppumisPvm']);
$leave = date('d M', $leavestamp);
echo "the leave is: " . $leave; //this one prints: 12 Apr

$leavequarter = (int) ((date('m', $leavestamp) - 1) / 3) + 1;
echo $leavequarter;
if((strtotime($leave)>= strtotime('01 Jan')) && (strtotime($leave)<= strtotime('15 Jan'))){$leavequarter=1;}
    elseif((strtotime($leave)>= strtotime('01 Apr')) && (strtotime($leave)<= strtotime('15 Apr'))){$leavequarter=2;}
    elseif((strtotime($leave)>= strtotime('01 Jul')) && (strtotime($leave)<= strtotime('15 Jul'))){$leavequarter=3;}
    elseif((strtotime($leave)>= strtotime('01 Oct')) && (strtotime($leave)<= strtotime('15 Oct'))){$leavequarter=4;}   
echo $leavequarter;