我有一个存储在我的mysql数据库中的日期,我可以像日期那样锻炼日期,
ceil(time() - strtotime($account['joined']) / 60 / 60 / 24 % 365);
但是我怎么能算出这些年,因为多年是时间的最高格式,因为之后是千年等等?
变量是这样的:
2011-10-06 22:01:57
由于
答案 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));
答案 3 :(得分:0)
如果您可以从MySQL端执行计算,请使用内置的date/time functions。例如,假设表T包含日期列D,并且您希望根据天数将其与当前日期进行比较:
SELECT
TIMESTAMPDIFF(DAY, D, CURDATE()) AS 'days_elapsed'
FROM T
您可以将TIMESTAMPDIFF中的第一个参数更改为以下任意一个:FRAC_SECOND(微秒),秒,分钟,小时,天,周,月,季或年。