如何在PHP中获取当前日期/时间作为日期对象

时间:2012-06-11 23:04:17

标签: php date datediff

作为日期对象,你如何得到今天的日期?

我正在尝试计算一些开始日期和今天之间的差异。以下操作无效,因为getdate()返回数组而不是日期对象:

$today = getdate();           
$start = date_create('06/20/2012');
$diff = date_diff($start, $today);

echo($today . '<br/>' . $start . '<br/>' . $diff);

输出:

  

数组([秒] =&gt; 8 [分钟] =&gt; 1 [小时] =&gt; 16 [mday] =&gt; 11 [wday] =&gt; 1 [mon] =&gt; 6 [年] =&gt; 2012 [yday] =&gt; 162 [工作日] =&gt;星期一[月] =&gt;六月[0] =&gt; 1339455668)

     

DateTime对象([date] =&gt; 2012-06-20 00:00:00 [timezone_type] =&gt; 3 [timezone] =&gt; America / Los_Angeles)

3 个答案:

答案 0 :(得分:40)

new DateTime('now');

http://www.php.net/manual/en/datetime.construct.php

比较很简单:

$today = new DateTime('now');
$newYear = new DateTime('2012-01-01');

if ($today > $newYear) {

}

操作编辑 我只需要调用 date_default_timezone_set ,然后这段代码就可以了。

答案 1 :(得分:13)

为了在日子里获得好处,请使用:

$today = new DateTime('today');

此对象的时间为00:00:00

如果你想要小时分和秒的差异,请使用:

$now = new DateTime('now');

答案 2 :(得分:0)

我最终使用 date_create 构造函数(无参数)来获取当前日期。

$diff = date_diff(date_create('06/20/2012'), date_create());
print_r($diff);

<强>输出:

  

DateInterval对象([y] =&gt; 0 [m] =&gt; 0 [d] =&gt; 8 [h] =&gt; 6 [i] =&gt; 30 [s] =&gt; 40 [反转] =&gt; 1 [天] =&gt; 8)

我不知道为什么,但是Mike B的回答(以及我为 DateTime 尝试的任何构造函数)在PHP5 / IIS中为我引发了错误。

相关问题