0

今日の日付から将来の日付を減算したいのですが、対象日までの日・時・分の両方を表示したいです。

これが私のコードです

<?php

date_default_timezone_set('Europe/London');

$format = "h:i d";
$date = date($format);
$target = date($format, mktime(0,0,0,12,8,2011));

echo date($format, $target-$date);

?>

敬具、アダム

4

2 に答える 2

5

操作には使用しないでくださいdate。日付を表示するためのものです。代わりに、2 つのタイムスタンプを減算します。

...
$date = mktime(now...);
$target = mktime(0,0,0,12,8,2011);

echo date($format, $target - $date);

ただし、タイムスタンプは 1970 年に開始し、2038 年に終了することに注意する必要があります。したがって、たとえば、2011 - 2007 = 1974 となります。

date_diff@Kerrek SBがコメントで提案したように、あなたの場合により適しています。

例 (php.net から):

$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days'); // +2 days
于 2011-12-01T13:56:50.627 に答える
1

多分これはあなたを助けるでしょう

<?php

$target = mktime (23, 34, 0, 9, 28, 2009);

$today = mktime();

$difference =($target-$today) ;

$days = $difference / 3600 / 24;
$difference = $difference - floor($days) * 3600 * 24;
$hours = $difference / 3600;
$difference = $difference - floor($hours) * 3600;
$minutes = $difference / 60;
echo "Days: ";
echo floor($days);
echo "<br />";
echo "Hours: ";
echo floor($hours);
echo "<br />";
echo "Minutes: ";
echo floor($minutes);

?>
于 2011-12-01T14:16:48.023 に答える