(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)
IntlCalendar::getDayOfWeekType — Inidcar si un día es un día de entresemana, del fin de semana o un día de transición entre ambos
Estilo orientado a objetos
$dayOfWeek
   ) : intEstilo por procedimientos
   Devuelve si el día proporcionado es un día de entresemana
   (IntlCalendar::DOW_TYPE_WEEKDAY), de fin de semana
   (IntlCalendar::DOW_TYPE_WEEKEND), un día durante el que
   ocurre una transición al fin de semana
   (IntlCalendar::DOW_TYPE_WEEKEND_OFFSET) o un día durante el
   cual cesa el fin de semana
   (IntlCalendar::DOW_TYPE_WEEKEND_CEASE).
  
   Si devuelve
   IntlCalendar::DOW_TYPE_WEEKEND_OFFSET o
   IntlCalendar::DOW_TYPE_WEEKEND_CEASE, se puede invocar a
   IntlCalendar::getWeekendTransition() para
   obtener la hora de la transición.
  
Esta función requiere ICU 4.4.
calEl recurso IntlCalendar.
dayOfWeek
      Una de las constantes IntlCalendar::DOW_SUNDAY,
      IntlCalendar::DOW_MONDAY, …,
      IntlCalendar::DOW_SATURDAY.
     
   Devuelve una de las constantes 
   IntlCalendar::DOW_TYPE_WEEKDAY,
   IntlCalendar::DOW_TYPE_WEEKEND,
   IntlCalendar::DOW_TYPE_WEEKEND_OFFSET o
   IntlCalendar::DOW_TYPE_WEEKEND_CEASE  o FALSE en caso de error.
  
Ejemplo #1 IntlCalendar::getDayOfWeekType()
<?php
foreach (array('en_US', 'ar_SA') as $locale) {
    echo "Región: ", Locale::getDisplayName($locale, "en_US"), "\n";
    $cal = IntlCalendar::createInstance('UTC', $locale);
    for ($i = IntlCalendar::DOW_SUNDAY; $i <= IntlCalendar::DOW_SATURDAY; $i++) {
        echo $i, " ", $cal->getDayOfWeekType($i), " ",
                $cal->getDayOfWeekType($i) >= IntlCalendar::DOW_TYPE_WEEKEND_OFFSET
                        ? $cal->getWeekendTransition($i)
                        : '',
                "\n";
    }
    echo "\n";
}
El resultado del ejemplo sería:
Región: English (United States) 1 3 86400000 2 0 3 0 4 0 5 0 6 0 7 1 Región: Arabic (Saudi Arabia) 1 0 2 0 3 0 4 0 5 1 6 3 86400000 7 0