开发者

Php get how many days and hours left from a date

开发者 https://www.devze.com 2023-04-06 11:02 出处:网络
I have a created_at date saved liked this \"2011-09-23 19:10:18\" And I want to get the days and hours left

I have a created_at date saved liked this "2011-09-23 19:10:18" And I want to get the days and hours left until the date is reached. How do I do that? and column name in database remain days automatically update daily with remain days, please solve this开发者_运维技巧


PHP fragment:

<?php

//Convert to date
$datestr="2011-09-23 19:10:18";//Your date
$date=strtotime($datestr);//Converted to a PHP date (a second count)

//Calculate difference
$diff=$date-time();//time returns current time in seconds
$days=floor($diff/(60*60*24));//seconds/minute*minutes/hour*hours/day)
$hours=round(($diff-$days*60*60*24)/(60*60));

//Report
echo "$days days $hours hours remain<br />";
?>

Note the hour-round and no minutes/seconds consideration means it can be slightly inaccurate.


This should seed your endeavor.

getdate(strtotime("2011-09-23 19:10:18"))

Full conversion:

$seconds = strtotime("2011-09-23 19:10:18") - time();

$days = floor($seconds / 86400);
$seconds %= 86400;

$hours = floor($seconds / 3600);
$seconds %= 3600;

$minutes = floor($seconds / 60);
$seconds %= 60;


echo "$days days and $hours hours and $minutes minutes and $seconds seconds";


as of PHP 5.3.0 you could use build-in Date object:

$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');

http://www.php.net/manual/en/book.datetime.php


it would be something like

echo $date = date("Y-m-d H:i:s");echo "\n";

$original=time($date);


$modified = "2011-09-23 19:10:18";

echo date("Y-m-d H:i:s",$modified);echo "\n";


The easiest way is improved answer from CountZero. I used this solution for counter for time remaining before expiration of offer. Addition to first three lines of CountZero code:

$days = $interval->d;
$hours = $interval->h;
$minutes = $interval->i;
$seconds = $interval->s;

And now, you can use string functions to moderate your return values, to merge all or add '0' or '00' in front of the values.


You can find current date and time using date() function and then subtract

$x = 2011-09-23 - current_date

this will give you no. of days left.

Do same with time as well ..

Hope this helps

0

精彩评论

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