function getDateInfo($date) {
$days = array('воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота');
$months = array(1 => 'январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь');
$months2 = array(1 => 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
$daymonth = array(1 => 'первое', 'второе', 'третье', 'четвертое', 'пятое', 'шестое', 'седьмое', 'восьмое', 'девятое', 'десятое', 'одиннадцатое', 'двенадцатое', 'тринадцатое', 'четырнадцатое', 'пятнадцатое', 'шестнадцатое', 'семнадцатое', 'восемнадцатое', 'девятнадцатое', 'двадцатое', 'двадцать первое', 'двадцать второе', 'двадцать третье', 'двадцать четвертое', 'двадцать пятое', 'двадцать шестое', 'двадцать седьмое', 'двадцать восьмое', 'двадцать девятое', 'тридцатое', 'тридцать первое');
$dateInfo = array();
$dateInfo['this_year'] = (int) date('Y', $date);
$dateInfo['day_num'] = (int) date('w', $date);
$dateInfo['month_num'] = (int) date('m', $date);
$dateInfo['day_month'] = (int) date('j', $date);
$dateInfo['day_of_month'] = $daymonth[$dateInfo['day_month']];
$dateInfo['day_of_week'] = $days[$dateInfo['day_num']];
$dateInfo['month_txt1'] = $months[$dateInfo['month_num']];
$dateInfo['month_txt2'] = $months2[$dateInfo['month_num']];
return $dateInfo;
}
function weekDay($date) {
$this_year = (int) date('Y', $date);
//Загружаем производственный календарь
$productionCalendar = @file_get_contents('http://xmlcalendar.ru/data/ru/' . $this_year . '/calendar.xml');
if ($productionCalendar) { //Если прочитали без ошибок
sg('Day.productionCalendar', $productionCalendar); //Запишем на всякий случай))
} else { //Если не прочиталось
$productionCalendar = gg('Day.productionCalendar'); // Возьмем ранее загруженный календарь
}
//Проверяем сегодняшний день по производственному календарю (рабочий или нет)
$weekDay = -1;
$this_date = date('m.d', $date);
$calend = new SimpleXMLElement($productionCalendar);
foreach ($calend->days->day as $day) {
$type = $day->attributes()->t; //тип дня: 1 - выходной день, 2 - короткий день, 3 - рабочий день (суббота/воскресен)
$CalDate = $day->attributes()->d; //дата
if ($this_date == $CalDate) {
if ($type == 1) { //выходной
$weekDay = 0;
} elseif ($type == 2) {
//Короткий день
$weekDay = 1;
} elseif ($type == 3) { //Перенесенный рабочий
$weekDay = 1;
}
}
}
//Если в производственном календаре ничего не нашлось
if ($weekDay == -1) {
if (date('w', $date) == 0 || date('w', $date) == 6) {
$weekDay = 0;
} else {
$weekDay = 1;
}
}
return $weekDay;
}
$today = getDateInfo(strtotime("now"));
$today['weekDay'] = weekDay(strtotime("now"));
//Сохраняем данные
sg('Day.DateNow',date( "d.m.Y", time()));
//Сегодня
sg('Day.thisYear', $today['this_year']);
sg('Day.monthNum', $today['month_num']);
sg('Day.monthTXT', $today['month_txt1']);
sg('Day.monthTXTalt', $today['month_txt2']);
sg('Day.dayOfMonthNum', $today['day_month']);
sg('Day.dayOfMonthTXT', $today['day_of_month']);
sg('Day.dayOfWeekTXT', $today['day_of_week']);
sg('Day.dayOfWeekNum', $today['day_num']);
sg('Day.isWeekDay', $today['weekDay']);