PHP date format, remove time and more

itsme picture itsme · Sep 16, 2012 · Viewed 85.3k times · Source

Possible Duplicate:
Convert one date format into another in PHP

Starting from:

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

I would like to do two things.

  1. Remove the time from the string, so it will become "2012-09-09".
  2. Calculate how many years, days, and hours have passed since this date using the server current date/time/timezone.

Could anyone help me figure this out?

Answer

Mihai Iorga picture Mihai Iorga · Sep 16, 2012

Use 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)
} */