php strtotime和锻炼多年?

时间:2011-11-07 19:52:06

标签: php time

我有一个存储在我的mysql数据库中的日期,我可以像日期那样锻炼日期,

 ceil(time() - strtotime($account['joined']) / 60 / 60 / 24 % 365);

但是我怎么能算出这些年,因为多年是时间的最高格式,因为之后是千年等等?

变量是这样的:

2011-10-06 22:01:57

由于

4 个答案:

答案 0 :(得分:2)

您可以使用mysql数据库获取时间跨度。

您可以在查询中使用DATEDIFF来减去当前日期的加入日期,您可以通过这种方式获得时间跨度。

此功能在此解释:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

希望有所帮助

答案 1 :(得分:1)

您始终可以使用date("Y", $timestamp)

对于您的问题,您可以使用date_diff,

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

答案 2 :(得分:1)

使用date("Y")

<?php 
$time = strtotime("1 Jan 2001 1:11:11"); 
echo "Years since time: ".(date("Y") - date("Y", $time));

http://sandbox.phpcode.eu/g/220fe/1

答案 3 :(得分:0)

如果您可以从MySQL端执行计算,请使用内置的date/time functions。例如,假设表T包含日期列D,并且您希望根据天数将其与当前日期进行比较:

SELECT 
    TIMESTAMPDIFF(DAY, D, CURDATE()) AS 'days_elapsed'
FROM T

您可以将TIMESTAMPDIFF中的第一个参数更改为以下任意一个:FRAC_SECOND(微秒),秒,分钟,小时,天,周,月,季或年。