2012-11-19 37 views
1

我有一个数据库,其中包含不同的域名以及注册日期,我需要显示它们何时会过期(1年注册)。例如:2日期之间的差异(不考虑年份)

domain1.com - 已注册2012年11月19日(mm-dd-yyyy) - 将在365天后过期。 domain2.com - 注册2011年11月20日(mm-dd-yyyy) - 在1天内过期。

我一直在寻找不同的选项和问题(即How to calculate the difference between two dates using PHP?),但它们有点不同(我不需要几年的时间来考虑),我不是PHP和日期的专家。

我认为一个选项可以从总的被去除的年(* 365)的差异,但我不会考虑到多年的366

谢谢先进! 问候,

保罗

+0

所以基本上,你想找到“*日期加一年*和*今天*”之间的差异,以天,righ T'对于PHP 5.3+有一个方便的方法,并且对于PHP 5.2来说也不是一个方便的方法。你需要哪些? – deceze

+0

http://stackoverflow.com/questions/2040560/how-to-find-number-of-days-between-two-dates-using-php这可能会帮助你 –

+0

嗨,我应该澄清它自乞讨以来。我需要它为PHP 5.3。谢谢。 – Paul

回答

0

您可能很有用这个例子。

$date1 = "11/19/2012"; 
$date2 = "11/20/2011"; 
$diff = abs(strtotime($date2) - strtotime($date1)); 
$years = floor($diff/(365*60*60*24)); 
$months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24)); 
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); 
printf("%d years, %d months, %d days\n", $years, $months, $days); 

试试吧&提供适当的回复!

+0

嗨Dev,thx!为了您的回应。这是相同的回答问题http://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php我看了一下,但我没有工作为了我。无论如何,我找不到任何准确的数据,因此我正在实施您的解决方案,添加365 *($年)+ 31 *($个月)并考虑到闰年。我只需要弄清楚如何为每个月添加相应的天数,但我想我会为此创建一些数组。 – Paul

0

另外,您可以使用数据库日期函数来解决这个为你..与MySQL这将是沿着

SELECT DATEDIFF(start_date, NOW()) AS days_remaining FROM table_name 

线在这里看到更多的信息:

http://www.w3schools.com/sql/func_datediff_mysql.asp

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

+0

这似乎是一个非常好的解决方案! 我试图在mysql中实现它,它返回一些不正确的负值。我试图添加SELECT DATEDIFF(DAY(start_date),DAY(NOW()))等,但它返回null。我也尝试过,但仍无法从PHP实现它。 – Paul

相关问题