开发者

Figuring out that today is x number of days is after given date in PHP

开发者 https://www.devze.com 2023-04-04 19:43 出处:网络
I have data in my database that returns the month/day/year data points for events. What I want to do is check whether today is 20 days after the month/day/year that I get.

I have data in my database that returns the month/day/year data points for events.

What I want to do is check whether today is 20 days after the month/day/year that I get.

So far I have something like:

// Get date data
$day = $row['DAYOFMONTH(h开发者_C百科ike_date)'];
$year = $row['YEAR(hike_date)'];
$month = $row['MONTH(hike_date)'];

// Get today's date
$todays_date = date("Y-m-d");

// Create the date I am comparing with 
$date_string = $year.'-'.$month.'-'.$day;

My question is how do I compare it? And is the format going to matter in comparing the two dates?

Thanks!


Parse the month/day/year into a DateTime:

$other = date_create($year.'-'.$month.'-'.$day);

Add 20 days to it:

$twenty_days_after = clone $other;
$twenty_days_after->modify('+20 days');

Compare it with today:

if ($today >= $twenty_days_after) {
    // today is 20 days after the month/day/year that you got
}

See date_create.


$database_date             = strtotime(sprintf('%s-%s-%s', $year,$month,$day));
$twenty_days_from_now      = strtotime('+20 days');
$twenty_days_From_database = strtotime(sprintf('%s-%s-%s +20 days', $year,$month,$day));

Using strttime is the easiest method.


use

strtotime()

function which will convert your dates into timestamp and you can compare them easier


// Get date data
$day = $row['DAYOFMONTH(hike_date)'];
$year = $row['YEAR(hike_date)'];
$month = $row['MONTH(hike_date)'];

// Get today's date
$todays_date = date("Y-m-d");

// Create the date I am comparing with 
$date_string = $year.'-'.$month.'-'.$day;

if ( date( 'Y-m-d', strtotime( "+20 days", $date_string ) ) {
    //date is 20 days before today
}

strtotime does magical things

0

精彩评论

暂无评论...
验证码 换一张
取 消