web-dev-qa-db-ja.com

PHP-日付形式mm-dd-yyyyに1日を追加します

<?php
    $date = "04-15-2013";
    $date = strtotime($date);
    $date = strtotime("+1 day", $date);
    echo date('m-d-Y', $date);
?>

これは私を夢中にさせ、とてもシンプルに思えます。私はPHPが初めてですが、これを理解することはできません。エコーは01-01-1970を返します。

$ dateはPOSTからm-d-Yの形式で取得されます。1日追加して、後で使用する新しい変数として設定する必要があります。

$ dateをY-m-dに変換し、1日追加してからm-d-Yに戻す必要がありますか? DateTimeの使用方法を学習した方が良いでしょうか?

46
Jayr

そこに行きます

$date = "04-15-2013";
$date1 = str_replace('-', '/', $date);
$tomorrow = date('m-d-Y',strtotime($date1 . "+1 days"));

echo $tomorrow;

これは出力されます

04-16-2013

両方の機能のドキュメント
日付
strtotime

107
Fabio
$date = DateTime::createFromFormat('m-d-Y', '04-15-2013');
$date->modify('+1 day');
echo $date->format('m-d-Y');

実際の動作を参照

またはPHP 5.4+

echo (DateTime::createFromFormat('m-d-Y', '04-15-2013'))->modify('+1 day')->format('m-d-Y');

参照

59
John Conde
$date = strtotime("+1 day");
echo date('m-d-y',$date);
9
insoftservice

http://www.php.net/manual/en/datetime.add.php を使用

$date = date_create('2000-01-01');
date_add($date, date_interval_create_from_date_string('1 days'));
echo date_format($date, 'Y-m-d');

出力

2000-01-2
3

使用した形式はstrtotime()で認識されません。交換

$date = "04-15-2013";

沿って

$date = "04/15/2013";

または、-を使用する場合は、年を前にして次の行を使用します。

$date = "2013-04-15";
1
hek2mgl

実際、私は同じことを望んでいました、与えられた日付について、1年前の日付を取得するために! :-)

@mohammad mohsenipurからの上記の回答のヒントで、私は次の link に彼の与えられたリンクを経由して到達しました!

幸いなことに、date_subメソッドという名前のdate_addメソッドと同じメソッドがあります! :-)私が望んでいたことを成し遂げるために次のことをします!

$date = date_create('2000-01-01');
date_sub($date, date_interval_create_from_date_string('1 years'));
echo date_format($date, 'Y-m-d');

この答えが誰かにも役立つことを願っています! :-)

がんばれ!

0
Randika Vishman