作为日期对象,你如何得到今天的日期?
我正在尝试计算一些开始日期和今天之间的差异。以下操作无效,因为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)
答案 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中为我引发了错误。