web-dev-qa-db-ja.com

PHPで現在の日付/時刻を日付オブジェクトとして取得する方法

今日の日付を日付オブジェクトとしてどのように取得しますか?

一部の開始日と今日の差を計算しようとしています。 getdate()は日付オブジェクトではなく配列を返すため、以下は機能しません。

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

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

出力:

配列([秒] => 8 [分] => 1 [時間] => 16 [mday] => 11 [wday] => 1 [mon] => 6 [年] => 2012 [yday] => 162 [平日] =>月曜日[月] => 6月[0] => 1339455668)

DateTimeオブジェクト([date] => 2012-06-20 00:00:00 [timezone_type] => 3 [timezone] => America/Los_Angeles)

19
McGarnagle
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) {

}

Opの編集呼び出すだけ date_default_timezone_set、そしてこのコードは私のために働いた。

40
Mike B

日差を取得するには、これを使用します。

$today = new DateTime('today');

このオブジェクトの時間は00:00:00です。

時間、分、秒との違いが必要な場合は、これを使用します。

$now = new DateTime('now');
13
Skipper

私は結局使用しました 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 [invert] => 1 [days] => 8)

理由はわかりませんが、マイクBの回答(および私が試したコンストラクターDateTime)がPHP5/IISでエラーをスローしました。

0
McGarnagle