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

问题描述 投票:16回答:3

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

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

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

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

输出:

Array([seconds] => 8 [minutes] => 1 [hours] => 16 [mday] => 11 [wday] => 1 [mon] => 6 [year] => 2012 [yday] = > 162 [工作日] =>星期一[月] => 6月[0] => 1339455668)

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

php date datediff
3个回答
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,然后此代码对我有用。


13
投票

要获得不同的日子,请使用此:

$today = new DateTime('today');

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

如果您想与小时,分钟和秒相差,请使用此:

$now = new DateTime('now');

0
投票

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

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

输出:

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

我不知道为什么,但是Mike B的答案(以及我为DateTime尝试的任何构造方法)在PHP5 / IIS中给我带来了一个错误。

© www.soinside.com 2019 - 2024. All rights reserved.