83

私は現在、次のように現在の日付/時刻を返すphpを持っています:

$now = date("Y-m-d H:m:s");

私がやりたいのは、24 から 800 までの時間数であるequal$new_timeという新しい変数を用意することです。$now + $hours$hours

助言がありますか?

4

14 に答える 14

127

関数のようなものを使用strtotime()して、現在のタイムスタンプに何かを追加できます。$new_time = date("Y-m-d H:i:s", strtotime('+5 hours')).

関数で変数が必要な場合は、 のようstrtotime("+{$hours} hours")に二重引用符を使用する必要がありますが、使用する方が適切ですstrtotime(sprintf("+%d hours", $hours))

于 2012-07-08T20:14:44.650 に答える
48

もう 1 つの解決策 (オブジェクト指向) は、DateTime::add を使用することです。

例:

<?php

$now = new DateTime(); //now
echo $now->format('Y-m-d H:i:s'); // 2021-09-11 01:01:55

$hours = 36; // hours amount (integer) you want to add
$modified = (clone $now)->add(new DateInterval("PT{$hours}H")); // use clone to avoid modification of $now object
echo "\n". $modified->format('Y-m-d H:i:s'); // 2021-09-12 13:01:55

スクリプトを実行


于 2014-04-16T08:23:26.353 に答える
22

strtotime()を使用 してこれを実現できます。

$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours
于 2012-07-08T20:14:56.007 に答える
11

正しい

strtotime() を使用してこれを実現できます。

$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', strtotime($now))); // $now + 3 hours
于 2016-10-18T23:51:18.127 に答える
6

UNIX スタイルの時間を使用して計算することもできます。

$newtime = time() + ($hours * 60 * 60); // hours; 60 mins; 60secs
echo 'Now:       '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $newtime) ."\n";
于 2012-07-08T20:16:32.270 に答える
5

ええと... あなたの分を修正する必要があります... 'i' は分です。数ヶ月ではありません。:) (私も同じ問題を抱えていました。

$now = date("Y-m-d H:i:s");
$new_time = date("Y-m-d H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours
于 2013-07-30T08:42:53.180 に答える
1

特定の DateTime に対して、日、時間、分などを追加できます。いくつかの例を次に示します。

$now = new \DateTime();

$now->add(new DateInterval('PT24H')); // adds 24 hours

$now->add(new DateInterval('P2D')); // adds 2 days

PHP: DateTime::add - マニュアルhttps://www.php.net/manual/fr/datetime.add.php

于 2020-06-12T09:16:53.973 に答える
0
$date_to_be-added="2018-04-11 10:04:46";
$added_date=date("Y-m-d H:i:s",strtotime('+24 hours', strtotime($date_to_be)));

date()strtotime()関数の組み合わせがうまくいきます。

于 2018-04-11T08:08:35.063 に答える
-2
   $now = date("Y-m-d H:i:s");
   date("Y-m-d H:i:s", strtotime("+1 hours $now"));
于 2018-06-12T10:09:59.427 に答える