mirror of
https://github.com/alextselegidis/easyappointments.git
synced 2024-11-10 18:12:26 +03:00
187 lines
4.5 KiB
PHP
187 lines
4.5 KiB
PHP
<?php defined('BASEPATH') or exit('No direct script access allowed');
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Easy!Appointments - Open Source Web Scheduler
|
|
*
|
|
* @package EasyAppointments
|
|
* @author A.Tselegidis <alextselegidis@gmail.com>
|
|
* @copyright Copyright (c) 2013 - 2020, Alex Tselegidis
|
|
* @license http://opensource.org/licenses/GPL-3.0 - GPLv3
|
|
* @link http://easyappointments.org
|
|
* @since v1.4.0
|
|
* ---------------------------------------------------------------------------- */
|
|
|
|
if ( ! function_exists('get_date_format'))
|
|
{
|
|
/**
|
|
* Get the date format based on the current settings.
|
|
*
|
|
* @return string
|
|
*/
|
|
function get_date_format(): string
|
|
{
|
|
$date_format = setting('date_format');
|
|
|
|
return match ($date_format)
|
|
{
|
|
'DMY' => 'd/m/Y',
|
|
'MDY' => 'm/d/Y',
|
|
'YMD' => 'Y/m/d',
|
|
default => throw new RuntimeException('Invalid date format value: ' . $date_format),
|
|
};
|
|
}
|
|
}
|
|
|
|
if ( ! function_exists('get_time_format'))
|
|
{
|
|
/**
|
|
* Get the time format based on the current settings.
|
|
*
|
|
* @return string
|
|
*/
|
|
function get_time_format(): string
|
|
{
|
|
$time_format = setting('time_format');
|
|
|
|
return match ($time_format)
|
|
{
|
|
'military' => 'H:i',
|
|
'regular' => 'g:i a',
|
|
default => throw new RuntimeException('Invalid time format value: ' . $time_format),
|
|
};
|
|
}
|
|
}
|
|
|
|
if ( ! function_exists('get_date_time_format'))
|
|
{
|
|
/**
|
|
* Get the date-time format based on the current settings.
|
|
*
|
|
* @return string
|
|
*/
|
|
function get_date_time_format(): string
|
|
{
|
|
return get_date_format() . ' ' . get_time_format();
|
|
}
|
|
}
|
|
|
|
|
|
if ( ! function_exists('format_date'))
|
|
{
|
|
/**
|
|
* Format a date string based on the current app settings.
|
|
*
|
|
* @param DateTimeInterface|string $value
|
|
*
|
|
* @return string
|
|
*
|
|
* @throws Exception
|
|
*/
|
|
function format_date(DateTimeInterface|string $value): string
|
|
{
|
|
try
|
|
{
|
|
$value_date_time = $value;
|
|
|
|
if (is_string($value_date_time))
|
|
{
|
|
$value_date_time = new DateTime($value);
|
|
}
|
|
|
|
return $value_date_time->format(get_date_format());
|
|
}
|
|
catch (Exception $e)
|
|
{
|
|
log_message('error', 'Invalid date provided to the "format_date" helper function: ' . $e->getMessage());
|
|
|
|
return 'Invalid Date';
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( ! function_exists('format_time'))
|
|
{
|
|
/**
|
|
* Format a time string based on the current app settings.
|
|
*
|
|
* @param DateTimeInterface|string $value
|
|
*
|
|
* @return string
|
|
*
|
|
* @throws Exception
|
|
*/
|
|
function format_time(DateTimeInterface|string $value): string
|
|
{
|
|
try
|
|
{
|
|
$value_date_time = $value;
|
|
|
|
if (is_string($value_date_time))
|
|
{
|
|
$value_date_time = new DateTime($value);
|
|
}
|
|
|
|
return $value_date_time->format(get_time_format());
|
|
}
|
|
catch (Exception $e)
|
|
{
|
|
log_message('error', 'Invalid date provided to the format_time helper function: ' . $e->getMessage());
|
|
|
|
return 'Invalid Time';
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( ! function_exists('format_date_time'))
|
|
{
|
|
/**
|
|
* Format a time string based on the current app settings.
|
|
*
|
|
* @param DateTimeInterface|string $value
|
|
*
|
|
* @return string
|
|
*/
|
|
function format_date_time(DateTimeInterface|string $value): string
|
|
{
|
|
try
|
|
{
|
|
$value_date_time = $value;
|
|
|
|
if (is_string($value_date_time))
|
|
{
|
|
|
|
$value_date_time = new DateTime($value);
|
|
}
|
|
|
|
return $value_date_time->format(get_date_time_format());
|
|
}
|
|
catch (Exception $e)
|
|
{
|
|
log_message('error', 'Invalid date provided to the format_date_time helper function: ' . $e->getMessage());
|
|
|
|
return 'Invalid Date-Time';
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( ! function_exists('format_timezone'))
|
|
{
|
|
/**
|
|
* Format a timezone string based on the current app settings.
|
|
*
|
|
* @param string $value
|
|
*
|
|
* @return string
|
|
*/
|
|
function format_timezone(string $value): string
|
|
{
|
|
/** @var EA_Controller $CI */
|
|
$CI =& get_instance();
|
|
|
|
$CI->load->library('timezones');
|
|
|
|
return $CI->timezones->get_timezone_name($value);
|
|
}
|
|
}
|
|
|
|
|