PHP формат даты, удалить время и многое другое

Возможный дубликат:
Преобразовать один формат даты в другой в PHP

Начиная с:

$date = '2012-09-09 03:09:00'

Я хотел бы сделать две вещи.

  • Удалите время из строки, поэтому оно станет "2012-09-09".
  • Рассчитать, сколько лет, дней и часов прошло с этой даты используя текущую дату/время/часовой пояс сервера.

Может ли кто-нибудь помочь мне понять это?

Ответы

Ответ 1

Используйте DateTime:

$date = '2012-09-09 03:09:00';

$createDate = new DateTime($date);

$strip = $createDate->format('Y-m-d');
var_dump($strip); // string(10) "2012-09-09"

$now = new DateTime();
$difference = $now->diff($createDate, true);
var_dump($difference);

/* object(DateInterval)#3 (8) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(7)
  ["h"]=>
  int(13)
  ["i"]=>
  int(4)
  ["s"]=>
  int(38)
  ["invert"]=>
  int(0)
  ["days"]=>
  int(7)
} */

Ответ 2

$date = '2012-09-09 03:09:00';
$dt = new DateTime($date);

echo $dt->format('Y-m-d');

$interval = $dt->diff(new DateTime());

Вы можете использовать интервал, который вам подходит. См. http://php.net/manual/en/class.dateinterval.php