PHP show date2 if date1 passed

886

I need help on this..
I am new in php and dummy..

$displaydate = "";

$paydate1 = "23-10-2016";
$paydate2 = "23-11-2016";   
$paydate3 = "23-12-2016";    
$paydate4 = "23-01-2017";    
$paydate5 = "23-02-2017";   
$paydate6 = "23-03-2017";




if todaydate is 23-10-2016 then $displaydate = "$paydate2" until 22-11-2016. When 23-11-2016 then $displaydate = "$paydate3" and so on.



then results    
if the date is 23-10-2016 until 22-11-2016 $displaydate = "$paydate2"   
if the date is 23-11-2016 until 22-12-2016 $displaydate = "$paydate3"    
if the date is 23-12-2016 until 22-01-2016 $displaydate = "$paydate4"   
if the date is 23-01-2016 until 22-02-2016 $displaydate = "$paydate5"  
if the date is 23-02-2016 until 22-03-2016 $displaydate = "$paydate6"   

please help with the code...
Thanks..

IM php DUMMY

734

Answer

Solution:

Organize your data convenient so you can easy access it. Put your paydates it an array:

$paydate = ["23-10-2016","23-11-2016","23-12-2016","23-01-2017","23-02-2017","23-03-2017"];

UPDATED per your comment:

$payout1 = $this->data->paymentdate1; 
$payout2 = $this->data->paymentdate2; 
$payout3 = $this->data->paymentdate3; 
$payout4 = $this->data->paymentdate4; 
$payout5 = $this->data->paymentdate5; 
$payout6 = $this->data->paymentdate6; 

$paydate = [$payout1,$payout2,$payout3,$payout4,$payout5,$pa‌​yout6];

Transform the dates in an easy to sort format:

function trf_date($date)
{
    return date('Y-m-d', strtotime($date));
}
$paydate = array_map("trf_date", $paydate );

Sort the array to be sure we will get the dates in ascending order while looping.

sort($paydate);

Now loop through the array to find the first date higher then today:

foreach($paydate as $key=>$val){
   if($val > date('Y-m-d'))
     break;
}

$displaydate = ''; //initialize the output variable

//check to see if the last retrieved date meets the condition not to be in the past. 
//this is for the case all dates in the array are in the past
if(isset($paydate[$key]) && $paydate[$key] > date('Y-m-d'))
   $displaydate = $paydate[$key];

People are also looking for solutions to the problem: php - How to write code that can analyse an image to find where it is non-stencilized?

Source

Didn't find the answer?

Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.

Ask a Question

Write quick answer

Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.

Similar questions

Find the answer in similar questions on our website.