2012-02-29 6 views
1

2つの日付の間の日数形式で変数を作成します。php `strtotime`変数が負の数を返していませんか?

$dayDiff = round((strtotime('2012-02-18') - strtotime('2012-02-22'))/86400); 

上記の "-4"が正しく表示されます。代わりに、「2012-02-14」の指名手配結果の

$newDate= date('Y-m-d', strtotime($dayDiff . " day")); 

正の数で、上記のように扱い$dayDiffと吐き出す「2012-02-25」。何か案は?

答えて

4

この意志出力:

$dayDiff = round((strtotime('2012-02-18') - strtotime('2012-02-22'))/86400); 
echo $newDate= date('Y-m-d', strtotime($dayDiff . " day", strtotime('2012-02-18'))); 

か:

$firstDate = strtotime('2012-02-18'); 
$dayDiff = round(($firstDate - strtotime('2012-02-22'))/86400); 
echo $newDate= date('Y-m-d', strtotime($dayDiff . " day", $firstDate)); 

strtotimeは現在のタイムスタンプから作業していないからだろう18th、これはなぜ出力する場合:echo date('Y-m-d', strtotime('now'));それはのstrtotimeに出力今日の日付、echo date('Y-m-d', strtotime('now - 4 days')); 25、およびecho date('Y-m-d', strtotime('2012-02-18 - 4 days')); 18 -4日が出力されます14.

詳細は以下となります。http://php.net/manual/en/function.strtotime.php

+1

これはそれをやったと私は完全に 'strtotime'、感謝を理解していませんでした説明のために – ToddN

+0

@ToddN私はあなたがstrtotimeについて知る必要があるすべてを説明する、私が付いたリンクを見てください。しかし基本的に、strtotimeはepoc時(1970年1月1日@ 00:00:00) - http://en.wikipedia.org/wiki/Unix_timeで始まります。あなたがもっと助けが必要な場合は教えてください –

関連する問題