/** * Sets the culture. * * @param CultureInfo $cultureInfo The (new) culture * @return uiDatePicker `$this` */ function SetCulture($cultureInfo) { while ($cultureInfo->IsNeutral()) { $cultureInfo = $cultureInfo->DefaultRegion()->DefaultCulture(); } $this->CultureInfo = $cultureInfo; $format = $cultureInfo->DateTimeFormat->ShortDatePattern; $format = str_replace("d1", "d", $format); $format = str_replace("d2", "dd", $format); $format = str_replace("d3", "D", $format); $format = str_replace("d4", "DD", $format); $format = str_replace("M1", "m", $format); $format = str_replace("MM", "M2", $format); $format = str_replace("M2", "mm", $format); $format = str_replace("M3", "M", $format); $format = str_replace("M4", "MM", $format); $format = str_replace("M", "m", $format); $format = str_replace("yyyy", "y4", $format); $format = str_replace("y1", "y", $format); $format = str_replace("y2", "y", $format); $format = str_replace("y3", "yy", $format); $format = str_replace("y4", "yy", $format); $this->Options['dayNames'] = $cultureInfo->DateTimeFormat->DayNames; $this->Options['dayNamesMin'] = $cultureInfo->DateTimeFormat->ShortDayNames; $this->Options['dayNamesShort'] = $cultureInfo->DateTimeFormat->ShortDayNames; $this->Options['monthNames'] = $cultureInfo->DateTimeFormat->MonthNames; $this->Options['monthNamesShort'] = $cultureInfo->DateTimeFormat->ShortMonthNames; $this->Options['dateFormat'] = $format; return $this; }
/** * Formats a given string. * * @param string $full_content The string to format * @param CultureInfo $culture <CultureInfo> object or false if not present * @return string The formatted string */ function FormatContent($full_content, $culture = false) { $this->content = $content = trim(strip_tags($full_content)); if ($this->blank_if_false && !$content) { return ""; } if (is_array($this->format)) { list($format, $options) = $this->format; $format = strtolower($format); if (!is_array($options)) { $options = array($options); } } else { $format = strtolower($this->format); } if ($format == 'duration') { $completedur = $dur = intval($content); $s = sprintf("%02u", $dur % 60); $dur = floor($dur / 60); $h = floor($dur / 60); if ($completedur == 0) { $content = "0:00"; } elseif ($h > 0) { $m = sprintf("%02u", $dur % 60); $content = str_replace($content, "{$h}:{$m}:{$s}", $full_content); } else { $m = sprintf("%u", $dur % 60); $content = str_replace($content, "{$m}:{$s}", $full_content); } } if ($format == 'fixed' || $format == 'pre' || $format == 'preformatted') { $content = str_replace($content, "<pre>{$content}</pre>", $full_content); } elseif ($culture) { switch ($format) { case 'date': $content = str_replace($content, $culture->FormatDate($content), $full_content); break; case 'time': $content = str_replace($content, $culture->FormatTime($content), $full_content); break; case 'datetime': $content = str_replace($content, $culture->FormatDateTime($content), $full_content); break; case 'currency': $content = str_replace($content, $culture->FormatCurrency($content), $full_content); break; case 'int': case 'integer': $content = str_replace($content, $culture->FormatInt($content), $full_content); break; case 'percent': $content = str_replace($content, $culture->FormatInt($content) . "%", $full_content); break; case 'float': case 'double': $content = str_replace($content, $culture->FormatNumber($content, intval($options[0])), $full_content); break; } } else { $content = str_replace($content, sprintf($format, $content), $full_content); } return $content; }