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 - Fatal编程技术网

Php属于特定的季度

Php属于特定的季度,php,date,Php,Date,很抱歉,我目前在这一部分遇到问题。我的日期格式是Y-m-d $date1 = '2016-03-1'; $date2 = '2016-07-1'; $date3 = '2016-10-1'; $date4 = '2016-12-1'; 如果今天是2016年8月12日,则自下一个时期以来,应降至$date3。 我尝试使用if条件,但它只在第一个条件下失效。你能告诉我这件事吗 我的代码有点像这样 $today = date("2016-07-29"); if(strtotime($date1) &

很抱歉,我目前在这一部分遇到问题。我的日期格式是Y-m-d

$date1 = '2016-03-1';
$date2 = '2016-07-1';
$date3 = '2016-10-1';
$date4 = '2016-12-1';
如果今天是2016年8月12日,则自下一个时期以来,应降至$date3。 我尝试使用if条件,但它只在第一个条件下失效。你能告诉我这件事吗

我的代码有点像这样

$today = date("2016-07-29");
if(strtotime($date1) < strtotime($today)){
        $next_accrual_date = $date1;
        $date_condition = 'condition 1';
    }else
    if(strtotime($date2) <   strtotime($today)){
        $next_accrual_date = $date2;
        $date_condition = 'condition 2';
    }else
    if(strtotime($date3) <  strtotime($today)){
        $next_accrual_date = $date3;
        $date_condition = 'condition 3';
    }else
    if(strtotime($date4) <  strtotime($today)){
        $next_accrual_date = $date4;
        $date_condition = 'condition 4';
    }
echo $next_accrual_date." falls to ".$date_condition;
$today=日期(“2016-07-29”);
if(标准时间($date1)<标准时间($today)){
$next\ U应计项目\日期=$date1;
$date_条件='条件1';
}否则
if(标准时间($date2)<标准时间($today)){
$next\ U应计\日期=$date2;
$date_条件='条件2';
}否则
if(标准时间($date3)<标准时间($today)){
$next\应计\日期=$date3;
$date_条件='条件3';
}否则
if(标准时间($date4)<标准时间($today)){
$next\ U应计项目\日期=$date4;
$date_条件='条件4';
}
echo$next\u应计日期。“下降到”$date\u条件;
一种方法是

<?php
$dates = array();
$dates[] = '2016-03-1';
$dates[] = '2016-07-1';
$dates[] = '2016-10-1';
$dates[] = '2016-12-1';

usort($dates, "cmp");

function cmp($a, $b){ 
    return strcmp($a, $b); 
}

foreach($dates as $date){
  if($date > "2016-08-12"){
    echo $date;
    break;
  } 
}

//print_r($dates);

?>
一种方法是

<?php
$dates = array();
$dates[] = '2016-03-1';
$dates[] = '2016-07-1';
$dates[] = '2016-10-1';
$dates[] = '2016-12-1';

usort($dates, "cmp");

function cmp($a, $b){ 
    return strcmp($a, $b); 
}

foreach($dates as $date){
  if($date > "2016-08-12"){
    echo $date;
    break;
  } 
}

//print_r($dates);

?>

只需将比较从<更改为>:

$today = date("2016-07-29");
if(strtotime($date1) > strtotime($today)){
    $next_accrual_date = $date1;
    $date_condition = 'condition 1';
}else ...
echo $next_accrual_date." falls to ".$date_condition;

它会起作用的。目前,您查看今天是否大于第一季度的日期,然后打破if。但“2016-03-1”之后的每个日期都适用于这种情况。这就是为什么您总是得到条件1。

只需将比较从<更改为>:

$today = date("2016-07-29");
if(strtotime($date1) > strtotime($today)){
    $next_accrual_date = $date1;
    $date_condition = 'condition 1';
}else ...
echo $next_accrual_date." falls to ".$date_condition;

它会起作用的。目前,您查看今天是否大于第一季度的日期,然后打破if。但“2016-03-1”之后的每个日期都适用于这种情况。这就是为什么您总是得到条件1。

请显示您迄今为止尝试的内容。因此,您基本上希望从4个日期中选择一个最接近当前日期的日期?你目前的if情况如何?分享你的完整代码我已经更新了我的代码我的道歉格式是Y-m-d我的BAD请展示你迄今为止的尝试。因此你基本上想从4个日期中选择一个,哪一个最接近当前日期?你目前的if情况如何?分享你的完整代码我已经更新了我的代码我很抱歉格式是Y-m-d我的不好