25

今日の日付を日付オブジェクトとして取得するにはどうすればよいですか?

開始日と今日の差を計算しようとしています。以下は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 [year] => 2012 [yday] => 162 [平日] => 月曜日 [月] => 6 月 [0] => 1339455668 )

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

4

3 に答える 3

49
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 を呼び出すだけで、このコードが機能しました。

于 2012-06-11T23:06:31.460 に答える
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 でエラーをスローしました。

于 2012-06-12T00:34:01.923 に答える