これらの数字でどのように疲れていますか。
たぶん誰かが解決策を知っていますか?
タスクは次のとおりです。通常の通常の日付があります:2006年7月28日。 (2006年7月28日)。 「X年XX月XX日」という形式で印刷する必要があります。その月と年の現在の日付が計算されます。 それは(たとえば日付):
最初の日付:2006年7月28日
現在の日付:2007年7月28日
結果:1年
最初の日付:2006年7月28日
現在の日付:2008年1月28日
結果:1年6か月
最初の日付:2006年7月28日
現在の日付:2008年7月28日
結果:2年
最初の日付:07.28.2006
現在の日付:2008年8月30日
結果:2年1か月2日
2月の愚かさ(これらのうるう年に耐えられなかった場合)により、すべてが順調です、すべては順調です。明るい頭。
日付カウントコード自体:
function pf($n, $form1, $form2, $form5) {
$n = abs($n) % 100;
$n1 = $n % 10;
if ($n > 10 && $n < 20) return $form5;
if ($n1 > 1 && $n1 < 5) return $form2;
if ($n1 == 1) return $form1;
return $form5;
}
$mktime = mktime(0,0,0,7,28,2006);
$nowTime = mktime(0,0,0,7,28,2007); //time();
// CheckGregorian
$y = date("Y",$nowTime);
$minus = 0;
if(!checkdate(2,29,$y)) $minus = 86400;
$mSec = $nowTime - $mktime - $minus;
$yDay = 365 * 86400;
$year = ($mSec - ($mSec % $yDay)) / $yDay; //31557600
$mSec = $mSec - ($year * $yDay);
$month = ($mSec - ($mSec % 2629800)) / 2629800;
$mSec = $mSec - ($month * 2629800);
$day = ($mSec - ($mSec % 86400)) / 86400;
if($year != 0) echo " $year ".pf($year,"","","");
if($month != 0) echo " $month ".pf($month,"","","");
if($day != 0) echo " $day ".pf($day,"","","");
Plzは私をマイナスしないでください。 誰もが見たいトピックは欲しくない これはトピックではなく、ヘルプデスクです。 あなたが本当にそのような問題に遭遇し、解決策を知っている人、助けてください。
更新:誰かがそれを必要とするなら、答えはru_phpで私に促しました。 作業スクリプト。 もちろん、これは私が望んでいたものではありません、つまり 私は自分自身を改良し、解析し、誰かの既製のスクリプトを使用したくなかった。 しかし、それでも動作します。
リンク: ru_php /コメント