Pregunta

If I give 2 dates, I need results as follow -

SUNDAY = 3 TIMES
MONDAY = 3 TIMES
TUESDAY = 4 TIMES
WEDNESDAY = 4 TIMES
THURSDAY = 4 TIMES
FRIDAY  = 4 TIMES
SATRUDAY = 4 TIMES

I am confused if this can be done via any function in mysql or I have to do it from php. I tried with various ways in mysql but could not get any success. I am trying it in php but the codes is somewhat getting lengthy.

¿Fue útil?

Solución

Try;

define('ONE_WEEK', 604800); // 7 * 24 * 60 * 60

function number_of_days($day, $start, $end)
{
    $w = array(date('w', $start), date('w', $end));

    return floor( ( $end - $start ) / ONE_WEEK ) + ( $w[0] > $w[1] ? $w[0] <= $day || $day <= $w[1] : $w[0] <= $day && $day <= $w[1] );
}

//$start = $end = time();

echo number_of_days(0, $start, $end); // SUNDAY
echo number_of_days(1, $start, $end); // MONDAY
echo number_of_days(2, $start, $end); // TUESDAY
echo number_of_days(3, $start, $end); // WEDNESDAY
echo number_of_days(4, $start, $end); // THURSDAY
echo number_of_days(5, $start, $end); // FRIDAY
echo number_of_days(6, $start, $end); // SATURDAY
?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top