Your IP : 216.73.216.170
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
use Bitrix\Main\Type\DateTime;
use Bitrix\Main\Loader;
use Bitrix\Highloadblock\HighloadBlockTable as HLBT;
use Bitrix\Disk\Security\DiskSecurityContext;
use Bitrix\Disk\Security\SecurityContext;
use Bitrix\Disk\Storage;
use Bitrix\Main\Localization\Loc;
$xmlCal = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/local/production_calendar/calendar_2018.xml');
/*
days - праздники/короткие дни/рабочие дни (суббота либо воскресенье)
d - день (формат ММ.ДД)
t - тип дня: 1 - выходной день, 2 - рабочий и сокращенный (может быть использован для любого дня недели), 3 - рабочий день (суббота/воскресенье)
h - номер праздника (ссылка на атрибут id тэга holiday)
суббота и воскресенье считаются выходными, если нет тегов day с атрибутом t=2 и t=3 за этот день
*/
$sxe = new SimpleXMLElement($xmlCal);
$calendar = [];
foreach($sxe->days->day as $day) {
$attrs = $day->attributes();
switch ($attrs['t']) {
case '1':
// okp((string)$attrs['d']);
$calendar['holidays'][(string)$attrs['d']] = (string)$attrs['d'];
break;
case '2':
// okp((string)$attrs['d']);
$calendar['shortdays'][(string)$attrs['d']] = (string)$attrs['d'];
break;
case '3':
// okp((string)$attrs['d']);
$calendar['fulldays'][(string)$attrs['d']] = (string)$attrs['d'];
break;
default:
okp($attrs);
break;
}
// okp($day);
// okp($day->attributes()['t']);
// okp($day->attributes()['d']);
// okp($day->attributes()['h']);
}
// okp($calendar);
$yearStart = strtotime('01.01.2018');
$hourCalendar = [];
for ($day = $yearStart; $day < strtotime('01.01.2019'); $day += (86400)) {
$dayWord = date('m.d', $day);
switch (date('N', $day)) {
case '1':
case '2':
case '3':
case '4':
if (!empty($calendar['holidays'][$dayWord])) {
$hourCalendar[$dayWord] = 0;
} elseif(!empty($calendar['shortdays'][$dayWord])) {
$hourCalendar[$dayWord] = 7;
} else {
$hourCalendar[$dayWord] = 8;
}
break;
case '5':
if (!empty($calendar['holidays'][$dayWord])) {
$hourCalendar[$dayWord] = 0;
} elseif(!empty($calendar['fulldays'][$dayWord])) {
$hourCalendar[$dayWord] = 8;
} else {
$hourCalendar[$dayWord] = 7;
}
break;
case '6':
case '7':
if (!empty($calendar['shortdays'][$dayWord])) {
$hourCalendar[$dayWord] = 7;
} elseif(!empty($calendar['fulldays'][$dayWord])) {
$hourCalendar[$dayWord] = 8;
} else {
$hourCalendar[$dayWord] = 0;
}
break;
}
// okp(date('d.m.Y', $day));
// okp(date('N', $day));
// okp(date('l', $day));
}
okp(getProdHours($_GET['from'], $_GET['to'], $hourCalendar));
okp($hourCalendar);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>