(PHP 5.5.0, PECL >= 3.0.0a1)
IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two
Object oriented style
$dayOfWeek
   )Procedural style
   Returns whether the passed day is a weekday
   (IntlCalendar::DOW_TYPE_WEEKDAY), a weekend day
   (IntlCalendar::DOW_TYPE_WEEKEND), a day during which a
   transition occurs into the weekend
   (IntlCalendar::DOW_TYPE_WEEKEND_OFFSET) or a day during
   which the weekend ceases
   (IntlCalendar::DOW_TYPE_WEEKEND_CEASE).
  
   If the return is either
   IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
   IntlCalendar::DOW_TYPE_WEEKEND_CEASE, then
   IntlCalendar::getWeekendTransition() can be called to
   obtain the time of the transition.
  
This function requires ICU 4.4 or later.
calThe IntlCalendar resource.
dayOfWeek
      One of the constants IntlCalendar::DOW_SUNDAY,
      IntlCalendar::DOW_MONDAY, …,
      IntlCalendar::DOW_SATURDAY.
     
   Returns one of the constants 
   IntlCalendar::DOW_TYPE_WEEKDAY,
   IntlCalendar::DOW_TYPE_WEEKEND,
   IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
   IntlCalendar::DOW_TYPE_WEEKEND_CEASE or FALSE on failure.
  
Example #1 IntlCalendar::getDayOfWeekType()
<?php
foreach (array('en_US', 'ar_SA') as $locale) {
    echo "Locale: ", 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";
}
The above example will output:
Locale: English (United States) 1 3 86400000 2 0 3 0 4 0 5 0 6 0 7 1 Locale: Arabic (Saudi Arabia) 1 0 2 0 3 0 4 0 5 1 6 3 86400000 7 0