25

可能重复:
在 PHP 中将一种日期格式转换为另一种日期格式

从...开始:

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

我想做两件事。

  1. 从字符串中删除时间,所以它会变成"2012-09-09".
  2. 使用服务器当前日期/时间/时区计算自该日期以来已经过去了多少年、多少天和多少小时。

谁能帮我解决这个问题?

4

2 回答 2

51

使用日期时间:

$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)
} */
于 2012-09-16T13:14:11.653 回答
23
$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

于 2012-09-16T13:13:02.863 回答