Skip to main content

PHP Function เปรียบเทียบช่วงเวลาห่าง วันเริ่มต้น ถึง วันสิ้นสุด

ในตัวอย่างนี้จะเป็น Function คำนวณระยะห่างระหว่างวันที่กำหนด เช่น
วันที่เริ่ม คือ 2014-05-07 08:50:00
วันที่สิ้นสุด คือ 2019-05-07 22:54:00

ผลการทำงาน ช่วงเวลาห่างระหว่างวันเริ่ม และวันสิ้นสุด คือ
5 Year 26 days 14 hours 4 minutes

function date_getFullTimeDifference( $start = null, $end = null ){
        $str = '';
        $uts['start'] = strtotime($start);
        $uts['end'] = strtotime($end);
        if( $uts['start']!==-1 && $uts['end']!==-1 )
        {
            if( $uts['end'] >= $uts['start'] )
            {
                $diff =  $uts['end'] - $uts['start'];
                if( $years=intval((floor($diff/31104000))) )
                    $diff = $diff % 31104000;
                    $str .= $years > 0 ? $years.' Year ' : '';
                if( $months=intval((floor($diff/2592000))) )
                    $diff = $diff % 2592000;
                    $str .= $months > 0 ? $months.' months ' : '';
                if( $days=intval((floor($diff/86400))) )
                    $diff = $diff % 86400;
                    $str .= $days > 0 ? $days.' days ' : '';
                if( $hours=intval((floor($diff/3600))) )
                    $diff = $diff % 3600;
                    $str .= $hours > 0 ? $hours.' hours ' : '';
                if( $minutes=intval((floor($diff/60))) )
                    $diff = $diff % 60;
                
                    $str .= $minutes > 0 ? $minutes.' minutes ' : '';

				return $str;
           
            }
            else
            {
                echo "Ending date/time is earlier than the start date/time";
            }
        }
        else
        {
            echo "Invalid date/time data detected";
        }
}


//การเรียกใช้งาน
echo date_getFullTimeDifference('2014-05-07 08:50:00','2019-05-07 22:54:00');

ขอขอบคุณข้อมูลจาก https://stackoverflow.com