Php属于特定的季度
很抱歉,我目前在这一部分遇到问题。我的日期格式是Y-m-dPhp属于特定的季度,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) &
$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我的不好