99

の形式のPHP日付があり2013-01-22、同じ形式で明日の日付を取得したいので、たとえば2013-01-23

これはPHPでどのように可能ですか?

4

11 に答える 11

225

DateTimeを使用する

$datetime = new DateTime('tomorrow');
echo $datetime->format('Y-m-d H:i:s');

または:

$datetime = new DateTime('2013-01-22');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');

または:

$datetime = new DateTime('2013-01-22');
$datetime->add(new DateInterval("P1D"));
echo $datetime->format('Y-m-d H:i:s');

またはPHP5.4以降:

echo (new DateTime('2013-01-22'))->add(new DateInterval("P1D"))
                                 ->format('Y-m-d H:i:s');
于 2013-01-22T14:12:23.373 に答える
91
 $tomorrow = date("Y-m-d", strtotime('tomorrow'));

また

  $tomorrow = date("Y-m-d", strtotime("+1 day"));

ヘルプリンク:STRTOTIME()

于 2015-12-15T09:47:56.037 に答える
17

のタグを付けたので、次の+1 dayように修飾子を付けて使用できます。

$tomorrow_timestamp = strtotime('+1 day', strtotime('2013-01-22'));

そうは言っても、DateTimeを使用する方がはるかに優れたソリューションです。

于 2013-01-22T14:14:49.297 に答える
15
<? php 

//1 Day = 24*60*60 = 86400

echo date("d-m-Y", time()+86400); 

?>
于 2013-10-24T10:35:41.147 に答える
6

echo date ('Y-m-d',strtotime('+1 day', strtotime($your_date)));

于 2017-06-22T05:12:23.057 に答える
5

使用DateTime

今から明日を取得するには:

$d = new DateTime('+1day');
$tomorrow = $d->format('d/m/Y h.i.s');
echo $tomorrow;

結果:2017年6月28日08.13.20

日付から明日を取得するには:

$d = new DateTime('2017/06/10 08.16.35 +1day')
$tomorrow = $d->format('d/m/Y h.i.s');
echo $tomorrow;

結果:2017年11月6日08.16.35

それが役に立てば幸い!

于 2017-06-27T01:18:18.237 に答える
1
/**
 * get tomorrow's date in the format requested, default to Y-m-d for MySQL (e.g. 2013-01-04)
 *
 * @param string
 *
 * @return string
 */
public static function getTomorrowsDate($format = 'Y-m-d')
{
    $date = new DateTime();
    $date->add(DateInterval::createFromDateString('tomorrow'));

    return $date->format($format);
}
于 2015-06-09T16:26:07.130 に答える
1

奇妙なことに、それは完全にうまく機能しているように見えるかもしれません:date_create( '2016-02-01 + 1 day' );

echo date_create( $your_date . ' + 1 day' )->format( 'Y-m-d' );

それをすべき

于 2016-02-02T12:51:20.693 に答える
0

まず、正しい抽象化を考え出すことが常に重要です。読みやすさ、保守性、拡張性の鍵。

ここで、非常に明白な候補はISO8601DateTimeです。少なくとも2つの実装があります。最初の実装は文字列から解析された日時であり、2番目の実装は明日です。したがって、使用できるクラスは2つあり、それらを組み合わせると、(ほぼ)望ましい結果が得られます。

new Tomorrow(new FromISO8601('2013-01-22'));

どちらのオブジェクトISO8601日時であるため、それらのテキスト表現は正確に必要なものではありません。したがって、最後のストロークは、日付形式をとらせることです。

new Date(
    new Tomorrow(
        new FromISO8601('2013-01-22')
    )
);

オブジェクトだけでなくテキスト表現が必要なため、value()メソッドを呼び出します。

このアプローチの詳細については、この投稿をご覧ください。

于 2020-05-10T14:24:16.783 に答える
-1

ここに動作機能があります

function plus_one_day($date){
 $date2 = formatDate4db($date);
 $date1 = str_replace('-', '/', $date2);
 $tomorrow = date('Y-m-d',strtotime($date1 . "+1 days"));
 return $tomorrow; }
于 2017-01-31T08:53:59.007 に答える
-4
$date = '2013-01-22';
$time = strtotime($date) + 86400;
echo date('Y-m-d', $time);

ここで、86400は1日の秒数です。

于 2013-01-22T14:14:27.123 に答える