Пример #1
0
 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;
     }
 }
Пример #2
0
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;
}
Пример #3
0
 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));
 }
Пример #4
0
 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;
 }
Пример #5
0
 }
 $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;