function IsToday($date) { if ($date && ($arDate = ParseDateTime($date, CSite::GetDateFormat('SHORT')))) { if (isset($arDate["M"])) { if (is_numeric($arDate["M"])) { $arDate["MM"] = intval($arDate["M"]); } else { $arDate["MM"] = GetNumMonth($arDate["M"], true); if (!$arDate["MM"]) { $arDate["MM"] = intval(date('m', strtotime($arDate["M"]))); } } } elseif (isset($arDate["MMMM"])) { if (is_numeric($arDate["MMMM"])) { $arDate["MM"] = intval($arDate["MMMM"]); } else { $arDate["MM"] = GetNumMonth($arDate["MMMM"]); if (!$arDate["MM"]) { $arDate["MM"] = intval(date('m', strtotime($arDate["MMMM"]))); } } } return intval($arDate['MM']) == date('n') && intval($arDate['DD']) == date('j'); } else { return false; } }
function FormatDateEx($strDate, $format=false, $new_format=false) { $strDate = trim($strDate); if (false === $format) $format = CSite::GetDateFormat('FULL'); if (false === $new_format) $new_format = CSite::GetDateFormat('FULL'); $new_format = str_replace("MI","I", $new_format); $new_format = preg_replace("/([DMYIHGST])\\1+/is".BX_UTF_PCRE_MODIFIER, "\\1", $new_format); $arFormat = preg_split('/[^0-9A-Za-z]/', strtoupper($format)); $arDate = preg_split('/[^A-Za-z0-9]/', $strDate); $arParsedDate = ParseDateTime($strDate); if (isset($arParsedDate["MMMM"])) { if (is_numeric($arParsedDate["MMMM"])) { $arParsedDate["MM"] = intval($arParsedDate["MMMM"]); } else { $arParsedDate["MM"] = GetNumMonth($arParsedDate["MMMM"]); if (!$arParsedDate["MM"]) $arParsedDate["MM"] = intval(date('m', strtotime($arParsedDate["MMMM"]))); } } elseif (isset($arParsedDate["MM"])) { $arParsedDate["MM"] = intval($arParsedDate["MM"]); } elseif (isset($arParsedDate["M"])) { if (is_numeric($arParsedDate["M"])) { $arParsedDate["MM"] = intval($arParsedDate["M"]); } else { $arParsedDate["MM"] = GetNumMonth($arParsedDate["M"], true); if (!$arParsedDate["MM"]) $arParsedDate["MM"] = intval(date('m', strtotime($arParsedDate["M"]))); } } if (isset($arParsedDate["H"])) { $arParsedDate["HH"] = intval($arParsedDate["H"]); } elseif (isset($arParsedDate["GG"])) { $arParsedDate["HH"] = intval($arParsedDate["GG"]); } elseif (isset($arParsedDate["G"])) { $arParsedDate["HH"] = intval($arParsedDate["G"]); } if (isset($arParsedDate['TT']) || isset($arParsedDate['T'])) { $middletime = isset($arParsedDate['TT']) ? $arParsedDate['TT'] : $arParsedDate['T']; if (strcasecmp('pm', $middletime)===0) { if ($arParsedDate["HH"] < 12) $arParsedDate["HH"] += 12; else $arParsedDate["HH"] -= 12; } } if (isset($arParsedDate["YYYY"])) $arParsedDate["YY"] = $arParsedDate["YYYY"]; if (intval($arParsedDate["DD"])<=0 || intval($arParsedDate["MM"])<=0 || intval($arParsedDate["YY"])<=0) return false; $strResult = ""; if(intval($arParsedDate["YY"])>1970 && intval($arParsedDate["YY"])<2038) { $ux_time = mktime( intval($arParsedDate["HH"]), intval($arParsedDate["MI"]), intval($arParsedDate["SS"]), intval($arParsedDate["MM"]), intval($arParsedDate["DD"]), intval($arParsedDate["YY"]) ); for ($i=0; $i<strlen($new_format); $i++) { $simbol = substr($new_format, $i ,1); switch ($simbol) { case "F":$match=GetMessage("MONTH_".date("n", $ux_time)."_S");break; case "f":$match=GetMessage("MONTH_".date("n", $ux_time));break; case "M":$match=GetMessage("MON_".date("n", $ux_time));break; case "l":$match=GetMessage("DAY_OF_WEEK_".date("w", $ux_time));break; case "D":$match=GetMessage("DOW_".date("w", $ux_time));break; default: $match = date(substr($new_format, $i ,1), $ux_time); break; } $strResult .= $match; } } else { if($arParsedDate["MM"]<1 || $arParsedDate["MM"]>12) $arParsedDate["MM"] = 1; for ($i=0; $i<strLen($new_format); $i++) { $simbol = substr($new_format, $i ,1); switch ($simbol) { case "F": case "f": $match = str_pad($arParsedDate["MM"], 2, "0", STR_PAD_LEFT); if (intVal($arParsedDate["MM"]) > 0) $match=GetMessage("MONTH_".intVal($arParsedDate["MM"]).($simbol == 'F' ? '_S' : '')); break; case "M": $match = str_pad($arParsedDate["MM"], 2, "0", STR_PAD_LEFT); if (intVal($arParsedDate["MM"]) > 0) $match=GetMessage("MON_".intVal($arParsedDate["MM"])); break; case "l": $match = str_pad($arParsedDate["DD"], 2, "0", STR_PAD_LEFT); if (intVal($arParsedDate["DD"]) > 0) $match = GetMessage("DAY_OF_WEEK_".intVal($arParsedDate["DD"])); break; case "D": $match = str_pad($arParsedDate["DD"], 2, "0", STR_PAD_LEFT); if (intVal($arParsedDate["DD"]) > 0) $match = GetMessage("DOW_".intVal($arParsedDate["DD"])); break; case "d": $match = str_pad($arParsedDate["DD"], 2, "0", STR_PAD_LEFT); break; case "m": $match = str_pad($arParsedDate["MM"], 2, "0", STR_PAD_LEFT); break; case "j": $match = intVal($arParsedDate["DD"]); break; case "Y": $match = str_pad($arParsedDate["YY"], 4, "0", STR_PAD_LEFT); break; case "y": $match = substr($arParsedDate["YY"], 2);break; case "H": $match = str_pad($arParsedDate["HH"], 2, "0", STR_PAD_LEFT); break; case "i": $match = str_pad($arParsedDate["MI"], 2, "0", STR_PAD_LEFT); break; case "s": $match = str_pad($arParsedDate["SS"], 2, "0", STR_PAD_LEFT); break; case "g": $match = intVal($arParsedDate["HH"]); if ($match > 12) $match = $match-12; case "a": case "A": $match = intVal($arParsedDate["HH"]); if ($match > 12) $match = ($match-12)." PM"; else $match .= " AM"; if (substr($new_format, $i ,1) == "a") $match = strToLower($match); default: $match = substr($new_format, $i ,1); break; } $strResult .= $match; } } return $strResult; }
function Birthday($datetime, $gender, $showYear = "N") { if (StrLen($datetime) <= 0) { return false; } $arDateTmp = ParseDateTime($datetime, CSite::GetDateFormat('SHORT')); $day = IntVal($arDateTmp["DD"]); if (isset($arDateTmp["M"])) { if (is_numeric($arDateTmp["M"])) { $month = IntVal($arDateTmp["M"]); } else { $month = GetNumMonth($arDateTmp["M"], true); if (!$month) { $month = intval(date('m', strtotime($arDateTmp["M"]))); } } } elseif (isset($arDateTmp["MMMM"])) { if (is_numeric($arDateTmp["MMMM"])) { $month = intval($arDateTmp["MMMM"]); } else { $month = GetNumMonth($arDateTmp["MMMM"]); if (!$month) { $month = intval(date('m', strtotime($arDateTmp["MMMM"]))); } } } else { $month = IntVal($arDateTmp["MM"]); } $arDateTmp["MM"] = $month; $year = IntVal($arDateTmp["YYYY"]); if ($showYear == 'Y' || $showYear == 'M' && $gender == 'M') { $date_template = GetMessage("SONET_BIRTHDAY_DAY_TEMPLATE"); } else { $date_template = GetMessage("SONET_BIRTHDAY_DAY_TEMPLATE_WO_YEAR"); } $val = str_replace(array("#DAY#", "#MONTH#", "#MONTH_LOW#", "#YEAR#"), array($day, GetMessage("MONTH_" . $month . "_S"), ToLower(GetMessage("MONTH_" . $month . "_S")), $year), $date_template); return array("DATE" => $val, "MONTH" => Str_Pad(IntVal($arDateTmp["MM"]), 2, "0", STR_PAD_LEFT), "DAY" => Str_Pad(IntVal($arDateTmp["DD"]), 2, "0", STR_PAD_LEFT)); }
function FormatDate($strDate, $format = "DD.MM.YYYY HH:MI:SS", $new_format = "DD.MM.YYYY HH:MI:SS") { $strDate = trim($strDate); $new_format = str_replace("MI", "I", strtoupper($new_format)); $new_format = preg_replace("/([DMYIHGST])\\1+/is", "\\1", $new_format); $arParsedDate = ParseDateTime($strDate, $format); if (!$arParsedDate) { return false; } foreach ($arParsedDate as $k => $v) { if (preg_match("/[^0-9]/", $v)) { $arParsedDate[$k] = CDatabase::ForSql($v, 10); } else { $arParsedDate[$k] = intval($v); } } /*time hacks*/ if (isset($arParsedDate["H"])) { $arParsedDate['HH'] = intval($arParsedDate["H"]); unset($arParsedDate["H"]); } elseif (isset($arParsedDate["GG"])) { $arParsedDate['HH'] = intval($arParsedDate["GG"]); unset($arParsedDate["GG"]); } elseif (isset($arParsedDate["G"])) { $arParsedDate['HH'] = intval($arParsedDate["G"]); unset($arParsedDate["G"]); } if (isset($arParsedDate['TT']) || isset($arParsedDate['T'])) { $middletime = $arParsedDate['TT'] ? $arParsedDate['TT'] : $arParsedDate['T']; if (strcasecmp($middletime, 'pm') === 0) { if ($arParsedDate['HH'] < 12) { $arParsedDate['HH'] += 12; } } else { if ($arParsedDate['HH'] == 12) { $arParsedDate['HH'] = 0; } } if (isset($arParsedDate['TT'])) { unset($arParsedDate['TT']); } else { unset($arParsedDate['T']); } } if (isset($arParsedDate["MMMM"])) { if (is_numeric($arParsedDate["MMMM"])) { $arParsedDate['MM'] = intval($arParsedDate["MMMM"]); } else { $arParsedDate['MM'] = GetNumMonth($arParsedDate["MMMM"]); if (!$arParsedDate['MM']) { $arParsedDate['MM'] = intval(date('m', strtotime($arParsedDate["MMMM"]))); } } } elseif (isset($arParsedDate["MM"])) { $arParsedDate['MM'] = intval($arParsedDate["MM"]); } elseif (isset($arParsedDate["M"])) { if (is_numeric($arParsedDate["M"])) { $arParsedDate['MM'] = intval($arParsedDate["M"]); } else { $arParsedDate['MM'] = GetNumMonth($arParsedDate["M"], true); if (!$arParsedDate['MM']) { $arParsedDate['MM'] = intval(date('m', strtotime($arParsedDate["M"]))); } } } if (isset($arParsedDate["YYYY"])) { $arParsedDate["YY"] = $arParsedDate["YYYY"]; } if (intval($arParsedDate["DD"]) <= 0 || intval($arParsedDate["MM"]) <= 0 || intval($arParsedDate["YY"]) <= 0) { return false; } $strResult = ""; if (intval($arParsedDate["YY"]) > 1970 && intval($arParsedDate["YY"]) < 2038) { $ux_time = mktime(isset($arParsedDate["HH"]) ? intval($arParsedDate["HH"]) : 0, isset($arParsedDate["MI"]) ? intval($arParsedDate["MI"]) : 0, isset($arParsedDate["SS"]) ? intval($arParsedDate["SS"]) : 0, intval($arParsedDate["MM"]), intval($arParsedDate["DD"]), intval($arParsedDate["YY"])); $new_format_len = strlen($new_format); for ($i = 0; $i < $new_format_len; $i++) { $ch = substr($new_format, $i, 1); if ($ch == "D") { $strResult .= date("d", $ux_time); } elseif ($ch == "M") { $strResult .= date("m", $ux_time); } elseif ($ch == "Y") { $strResult .= date("Y", $ux_time); } elseif ($ch == "H") { $strResult .= date("H", $ux_time); } elseif ($ch == "G") { $strResult .= date("h", $ux_time); } elseif ($ch == "I") { $strResult .= date("i", $ux_time); } elseif ($ch == "S") { $strResult .= date("s", $ux_time); } elseif ($ch == "T") { $strResult .= date("a", $ux_time); } else { $strResult .= $ch; } } } else { if ($arParsedDate["MM"] < 1 || $arParsedDate["MM"] > 12) { $arParsedDate["MM"] = 1; } $new_format_len = strlen($new_format); for ($i = 0; $i < $new_format_len; $i++) { $ch = substr($new_format, $i, 1); if ($ch == "D") { $strResult .= str_pad($arParsedDate["DD"], 2, "0", STR_PAD_LEFT); } elseif ($ch == "M") { $strResult .= str_pad($arParsedDate["MM"], 2, "0", STR_PAD_LEFT); } elseif ($ch == "Y") { $strResult .= str_pad($arParsedDate["YY"], 4, "0", STR_PAD_LEFT); } elseif ($ch == "H") { $strResult .= str_pad($arParsedDate["HH"], 2, "0", STR_PAD_LEFT); } elseif ($ch == "I") { $strResult .= str_pad($arParsedDate["MI"], 2, "0", STR_PAD_LEFT); } elseif ($ch == "S") { $strResult .= str_pad($arParsedDate["SS"], 2, "0", STR_PAD_LEFT); } else { $strResult .= $ch; } } } return $strResult; }
} $arBirthDate = ParseDateTime($arUser['PERSONAL_BIRTHDAY'], CSite::GetDateFormat('SHORT')); if (isset($arBirthDate["M"])) { if (is_numeric($arBirthDate["M"])) { $arBirthDate["MM"] = intval($arBirthDate["M"]); } else { $arBirthDate["MM"] = GetNumMonth($arBirthDate["M"], true); if (!$arBirthDate["MM"]) { $arBirthDate["MM"] = intval(date('m', strtotime($arBirthDate["M"]))); } } } elseif (isset($arBirthDate["MMMM"])) { if (is_numeric($arBirthDate["MMMM"])) { $arBirthDate["MM"] = intval($arBirthDate["MMMM"]); } else { $arBirthDate["MM"] = GetNumMonth($arBirthDate["MMMM"]); if (!$arBirthDate["MM"]) { $arBirthDate["MM"] = intval(date('m', strtotime($arBirthDate["MMMM"]))); } } } $arUser['IS_BIRTHDAY'] = intval($arBirthDate['MM']) == date('n', time() + CTimeZone::GetOffset()) && intval($arBirthDate['DD']) == date('j', time() + CTimeZone::GetOffset()); $arUser['arBirthDate'] = $arBirthDate; if ($arParams['DETAIL_URL']) { $arUser['DETAIL_URL'] = str_replace(array('#ID#', '#USER_ID#'), $arUser['ID'], $arParams['DETAIL_URL']); } if (!$arUser['PERSONAL_PHOTO']) { switch ($arUser['PERSONAL_GENDER']) { case "M": $suffix = "male"; break;