php strtotime и разработка лет? - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть дата, хранящаяся в моей базе данных MySQL, и я могу рассчитывать дни с даты, например,

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

Но как я могу определить годы, ведь годы - это самый высокий формат времени, поскольку после этого наступают тысячелетия и все такое?

Переменная такая, как:

2011-10-06 22:01:57

Спасибо

Ответы [ 4 ]

2 голосов
/ 07 ноября 2011

Вы можете использовать базу данных mysql для получения временного интервала.

Вы можете использовать DATEDIFF в своем запросе, чтобы вычесть объединенную дату из текущей даты, и вы можете получить временной интервал таким образом.

Эта функция объясняется здесь: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

Надеюсь, это поможет

1 голос
/ 07 ноября 2011

Использование 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

1 голос
/ 07 ноября 2011

Вы всегда можете использовать 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');
0 голосов
/ 08 ноября 2011

Если вы можете выполнять вычисления со стороны MySQL, используйте встроенные функции даты / времени . Например, если предположить, что таблица T содержит столбец даты D, и вы хотите сравнить ее с текущей датой с точки зрения количества дней:

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

Вы можете изменить первый аргумент в TIMESTAMPDIFF на любой из следующих: FRAC_SECOND (микросекунды), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER или YEAR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...