PDA

View Full Version : سوال: شمارش روزهای بین دو تاریخ شمسی



digitak
چهارشنبه 25 آبان 1390, 13:16 عصر
سلام
روز خوش
یک کد می خوام که بتونم تعداد روزهای بین دو تاریخ شمسی رو باهاش بشمارم .
مثلا بگم تاریخ شروع 01/05/1390 و تاریخ پایان 02/06/1390 هست و برنامه تعداد روزها رو 32 روز محاسبه کنه .
کدی می خوام که بتونه بین ماهه های 30 روزه ، 31 روزه و 29 روزه تفاوت قایل بشه.

ممنون می شم کمک کنید

peachcms
چهارشنبه 25 آبان 1390, 13:47 عصر
سلام
روز خوش
یک کد می خوام که بتونم تعداد روزهای بین دو تاریخ شمسی رو باهاش بشمارم .
مثلا بگم تاریخ شروع 01/05/1390 و تاریخ پایان 02/06/1390 هست و برنامه تعداد روزها رو 32 روز محاسبه کنه .
کدی می خوام که بتونه بین ماهه های 30 روزه ، 31 روزه و 29 روزه تفاوت قایل بشه.

ممنون می شم کمک کنید

با سلام

کد زید برای شمارهش اختلاف تاریخ هست اما فارسی نیست ولی خودتون میتونین فارسی سازی کنین با چند کد ساده و.........


<?php
function dates_diff($start, $end="NOW")
{
$sdate = strtotime($start);
$edate = strtotime($end);

$time = $edate - $sdate;
if($time>=0 && $time<=59) {
// Seconds
$timeshift = $time.' seconds ';

} elseif($time>=60 && $time<=3599) {
// Minutes + Seconds
$pmin = ($edate - $sdate) / 60;
$premin = explode('.', $pmin);

$presec = $pmin-$premin[0];
$sec = $presec*60;

$timeshift = $premin[0].' min '.round($sec,0).' sec ';

} elseif($time>=3600 && $time<=86399) {
// Hours + Minutes
$phour = ($edate - $sdate) / 3600;
$prehour = explode('.',$phour);

$premin = $phour-$prehour[0];
$min = explode('.',$premin*60);

$presec = '0.'.$min[1];
$sec = $presec*60;

$timeshift = $prehour[0].' hrs '.$min[0].' min '.round($sec,0).' sec ';

} elseif($time>=86400) {
// Days + Hours + Minutes
$pday = ($edate - $sdate) / 86400;
$preday = explode('.',$pday);

$phour = $pday-$preday[0];
$prehour = explode('.',$phour*24);

$premin = ($phour*24)-$prehour[0];
$min = explode('.',$premin*60);

$presec = '0.'.$min[1];
$sec = $presec*60;

$timeshift = $preday[0].' days '.$prehour[0].' hrs '.$min[0].' min '.round($sec,0).' sec ';

}
return $timeshift;
}

// EXAMPLE:

$start_date = '2011-03-15 13:00:00';
$end_date = '2012-03-17 09:36:15';

echo dates_diff($start_date, $end_date);

?>