diff options
Diffstat (limited to 'vendor/thecodingmachine/safe/generated/datetime.php')
| -rw-r--r-- | vendor/thecodingmachine/safe/generated/datetime.php | 1164 |
1 files changed, 0 insertions, 1164 deletions
diff --git a/vendor/thecodingmachine/safe/generated/datetime.php b/vendor/thecodingmachine/safe/generated/datetime.php deleted file mode 100644 index 9840ef5c6..000000000 --- a/vendor/thecodingmachine/safe/generated/datetime.php +++ /dev/null @@ -1,1164 +0,0 @@ -<?php - -namespace Safe; - -use Safe\Exceptions\DatetimeException; - -/** - * Returns associative array with detailed info about given date/time. - * - * @param string $format Format accepted by DateTime::createFromFormat. - * @param string $datetime String representing the date/time. - * @return array{year: int|false, month: int|false, day: int|false, hour: int|false, minute: int|false, second: int|false, fraction: float|false, warning_count: int, warnings: string[], error_count: int, errors: string[], is_localtime: bool, zone_type: int|bool, zone: int|bool, is_dst: bool, tz_abbr: string, tz_id: string, relative: array{year: int, month: int, day: int, hour: int, minute: int, second: int, weekday: int, weekdays: int, first_day_of_month: bool, last_day_of_month: bool}}|null Returns associative array with detailed info about given date/time. - * @throws DatetimeException - * - */ -function date_parse_from_format(string $format, string $datetime): ?array -{ - error_clear_last(); - $result = \date_parse_from_format($format, $datetime); - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * date_parse parses the given - * datetime string according to the same rules as - * strtotime and - * DateTimeImmutable::__construct. Instead of returning a - * Unix timestamp (with strtotime) or a - * DateTimeImmutable object (with - * DateTimeImmutable::__construct, it returns an - * associative array with the information that it could detect in the given - * datetime string. - * - * If no information about a certain group of elements can be found, these - * array elements will be set to FALSE or are missing. If needed for - * constructing a timestamp or DateTimeImmutable object from - * the same datetime string, more fields can be set to - * a non-FALSE value. See the examples for cases where that happens. - * - * @param string $datetime Date/time in format accepted by - * DateTimeImmutable::__construct. - * @return array{year: int|false, month: int|false, day: int|false, hour: int|false, minute: int|false, second: int|false, fraction: float|false, warning_count: int, warnings: string[], error_count: int, errors: string[], is_localtime: bool, zone_type: int|bool, zone: int|bool, is_dst: bool, tz_abbr: string, tz_id: string, relative: array{year: int, month: int, day: int, hour: int, minute: int, second: int, weekday: int, weekdays: int, first_day_of_month: bool, last_day_of_month: bool}}|null Returns array with information about the parsed date/time - * on success. - * @throws DatetimeException - * - */ -function date_parse(string $datetime): ?array -{ - error_clear_last(); - $result = \date_parse($datetime); - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * - * - * @param int $timestamp Unix timestamp. - * @param float $latitude Latitude in degrees. - * @param float $longitude Longitude in degrees. - * @return array Returns array on success. - * The structure of the array is detailed in the following list: - * - * - * - * sunrise - * - * - * The timestamp of the sunrise (zenith angle = 90°35'). - * - * - * - * - * sunset - * - * - * The timestamp of the sunset (zenith angle = 90°35'). - * - * - * - * - * transit - * - * - * The timestamp when the sun is at its zenith, i.e. has reached its topmost - * point. - * - * - * - * - * civil_twilight_begin - * - * - * The start of the civil dawn (zenith angle = 96°). It ends at sunrise. - * - * - * - * - * civil_twilight_end - * - * - * The end of the civil dusk (zenith angle = 96°). It starts at sunset. - * - * - * - * - * nautical_twilight_begin - * - * - * The start of the nautical dawn (zenith angle = 102°). It ends at - * civil_twilight_begin. - * - * - * - * - * nautical_twilight_end - * - * - * The end of the nautical dusk (zenith angle = 102°). It starts at - * civil_twilight_end. - * - * - * - * - * astronomical_twilight_begin - * - * - * The start of the astronomical dawn (zenith angle = 108°). It ends at - * nautical_twilight_begin. - * - * - * - * - * astronomical_twilight_end - * - * - * The end of the astronomical dusk (zenith angle = 108°). It starts at - * nautical_twilight_end. - * - * - * - * - * - * The values of the array elements are either UNIX timestamps, FALSE if the - * sun is below the respective zenith for the whole day, or TRUE if the sun is - * above the respective zenith for the whole day. - * @throws DatetimeException - * - */ -function date_sun_info(int $timestamp, float $latitude, float $longitude): array -{ - error_clear_last(); - $result = \date_sun_info($timestamp, $latitude, $longitude); - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * date_sunrise returns the sunrise time for a given - * day (specified as a timestamp) and location. - * - * @param int $timestamp The timestamp of the day from which the sunrise - * time is taken. - * @param int $returnFormat - * returnFormat constants - * - * - * - * constant - * description - * example - * - * - * - * - * SUNFUNCS_RET_STRING - * returns the result as string - * 16:46 - * - * - * SUNFUNCS_RET_DOUBLE - * returns the result as float - * 16.78243132 - * - * - * SUNFUNCS_RET_TIMESTAMP - * returns the result as int (timestamp) - * 1095034606 - * - * - * - * - * @param float $latitude Defaults to North, pass in a negative value for South. - * See also: date.default_latitude - * @param float $longitude Defaults to East, pass in a negative value for West. - * See also: date.default_longitude - * @param float $zenith zenith is the angle between the center of the sun - * and a line perpendicular to earth's surface. It defaults to - * date.sunrise_zenith - * - * Common zenith angles - * - * - * - * Angle - * Description - * - * - * - * - * 90°50' - * Sunrise: the point where the sun becomes visible. - * - * - * 96° - * Civil twilight: conventionally used to signify the start of dawn. - * - * - * 102° - * Nautical twilight: the point at which the horizon starts being visible at sea. - * - * - * 108° - * Astronomical twilight: the point at which the sun starts being the source of any illumination. - * - * - * - * - * @param float $utcOffset Specified in hours. - * The utcOffset is ignored, if - * returnFormat is - * SUNFUNCS_RET_TIMESTAMP. - * @return mixed Returns the sunrise time in a specified returnFormat on - * success. One potential reason for failure is that the - * sun does not rise at all, which happens inside the polar circles for part of - * the year. - * @throws DatetimeException - * - */ -function date_sunrise(int $timestamp, int $returnFormat = SUNFUNCS_RET_STRING, float $latitude = null, float $longitude = null, float $zenith = null, float $utcOffset = null) -{ - error_clear_last(); - if ($utcOffset !== null) { - $result = \date_sunrise($timestamp, $returnFormat, $latitude, $longitude, $zenith, $utcOffset); - } elseif ($zenith !== null) { - $result = \date_sunrise($timestamp, $returnFormat, $latitude, $longitude, $zenith); - } elseif ($longitude !== null) { - $result = \date_sunrise($timestamp, $returnFormat, $latitude, $longitude); - } elseif ($latitude !== null) { - $result = \date_sunrise($timestamp, $returnFormat, $latitude); - } else { - $result = \date_sunrise($timestamp, $returnFormat); - } - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * date_sunset returns the sunset time for a given - * day (specified as a timestamp) and location. - * - * @param int $timestamp The timestamp of the day from which the sunset - * time is taken. - * @param int $returnFormat - * returnFormat constants - * - * - * - * constant - * description - * example - * - * - * - * - * SUNFUNCS_RET_STRING - * returns the result as string - * 16:46 - * - * - * SUNFUNCS_RET_DOUBLE - * returns the result as float - * 16.78243132 - * - * - * SUNFUNCS_RET_TIMESTAMP - * returns the result as int (timestamp) - * 1095034606 - * - * - * - * - * @param float $latitude Defaults to North, pass in a negative value for South. - * See also: date.default_latitude - * @param float $longitude Defaults to East, pass in a negative value for West. - * See also: date.default_longitude - * @param float $zenith zenith is the angle between the center of the sun - * and a line perpendicular to earth's surface. It defaults to - * date.sunset_zenith - * - * Common zenith angles - * - * - * - * Angle - * Description - * - * - * - * - * 90°50' - * Sunset: the point where the sun becomes invisible. - * - * - * 96° - * Civil twilight: conventionally used to signify the end of dusk. - * - * - * 102° - * Nautical twilight: the point at which the horizon ends being visible at sea. - * - * - * 108° - * Astronomical twilight: the point at which the sun ends being the source of any illumination. - * - * - * - * - * @param float $utcOffset Specified in hours. - * The utcOffset is ignored, if - * returnFormat is - * SUNFUNCS_RET_TIMESTAMP. - * @return mixed Returns the sunset time in a specified returnFormat on - * success. One potential reason for failure is that the - * sun does not set at all, which happens inside the polar circles for part of - * the year. - * @throws DatetimeException - * - */ -function date_sunset(int $timestamp, int $returnFormat = SUNFUNCS_RET_STRING, float $latitude = null, float $longitude = null, float $zenith = null, float $utcOffset = null) -{ - error_clear_last(); - if ($utcOffset !== null) { - $result = \date_sunset($timestamp, $returnFormat, $latitude, $longitude, $zenith, $utcOffset); - } elseif ($zenith !== null) { - $result = \date_sunset($timestamp, $returnFormat, $latitude, $longitude, $zenith); - } elseif ($longitude !== null) { - $result = \date_sunset($timestamp, $returnFormat, $latitude, $longitude); - } elseif ($latitude !== null) { - $result = \date_sunset($timestamp, $returnFormat, $latitude); - } else { - $result = \date_sunset($timestamp, $returnFormat); - } - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * Returns a string formatted according to the given format string using the - * given integer timestamp (Unix timestamp) or the current time - * if no timestamp is given. In other words, timestamp - * is optional and defaults to the value of time. - * - * Unix timestamps do not handle timezones. Use the - * DateTimeImmutable class, and its - * DateTimeInterface::format formatting method to - * format date/time information with a timezone attached. - * - * @param string $format Format accepted by DateTimeInterface::format. - * @param int $timestamp The optional timestamp parameter is an - * int Unix timestamp that defaults to the current - * local time if timestamp is omitted or NULL. In other - * words, it defaults to the value of time. - * @return string Returns a formatted date string. If a non-numeric value is used for - * timestamp, FALSE is returned and an - * E_WARNING level error is emitted. - * @throws DatetimeException - * - */ -function date(string $format, int $timestamp = null): string -{ - error_clear_last(); - if ($timestamp !== null) { - $result = \date($format, $timestamp); - } else { - $result = \date($format); - } - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * Identical to mktime except the passed parameters represents a - * GMT date. gmmktime internally uses mktime - * so only times valid in derived local time can be used. - * - * Like mktime, arguments may be left out in order - * from right to left, with any omitted arguments being set to the - * current corresponding GMT value. - * - * @param int $hour The number of the hour relative to the start of the day determined by - * month, day and year. - * Negative values reference the hour before midnight of the day in question. - * Values greater than 23 reference the appropriate hour in the following day(s). - * @param int $minute The number of the minute relative to the start of the hour. - * Negative values reference the minute in the previous hour. - * Values greater than 59 reference the appropriate minute in the following hour(s). - * @param int $second The number of seconds relative to the start of the minute. - * Negative values reference the second in the previous minute. - * Values greater than 59 reference the appropriate second in the following minute(s). - * @param int $month The number of the month relative to the end of the previous year. - * Values 1 to 12 reference the normal calendar months of the year in question. - * Values less than 1 (including negative values) reference the months in the previous year in reverse order, so 0 is December, -1 is November, etc. - * Values greater than 12 reference the appropriate month in the following year(s). - * @param int $day The number of the day relative to the end of the previous month. - * Values 1 to 28, 29, 30 or 31 (depending upon the month) reference the normal days in the relevant month. - * Values less than 1 (including negative values) reference the days in the previous month, so 0 is the last day of the previous month, -1 is the day before that, etc. - * Values greater than the number of days in the relevant month reference the appropriate day in the following month(s). - * @param int $year The year - * @return int Returns a int Unix timestamp on success. - * @throws DatetimeException - * - */ -function gmmktime(int $hour, int $minute = null, int $second = null, int $month = null, int $day = null, int $year = null): int -{ - error_clear_last(); - if ($year !== null) { - $result = \gmmktime($hour, $minute, $second, $month, $day, $year); - } elseif ($day !== null) { - $result = \gmmktime($hour, $minute, $second, $month, $day); - } elseif ($month !== null) { - $result = \gmmktime($hour, $minute, $second, $month); - } elseif ($second !== null) { - $result = \gmmktime($hour, $minute, $second); - } elseif ($minute !== null) { - $result = \gmmktime($hour, $minute); - } else { - $result = \gmmktime($hour); - } - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * Behaves the same as strftime except that the - * time returned is Greenwich Mean Time (GMT). For example, when run - * in Eastern Standard Time (GMT -0500), the first line below prints - * "Dec 31 1998 20:00:00", while the second prints "Jan 01 1999 - * 01:00:00". - * - * @param string $format See description in strftime. - * @param int $timestamp The optional timestamp parameter is an - * int Unix timestamp that defaults to the current - * local time if timestamp is omitted or NULL. In other - * words, it defaults to the value of time. - * @return string Returns a string formatted according to the given format string - * using the given timestamp or the current - * local time if no timestamp is given. Month and weekday names and - * other language dependent strings respect the current locale set - * with setlocale. - * On failure, FALSE is returned. - * @throws DatetimeException - * - */ -function gmstrftime(string $format, int $timestamp = null): string -{ - error_clear_last(); - if ($timestamp !== null) { - $result = \gmstrftime($format, $timestamp); - } else { - $result = \gmstrftime($format); - } - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * Returns a number formatted according to the given format string using the - * given integer timestamp or the current local time - * if no timestamp is given. In other words, timestamp - * is optional and defaults to the value of time. - * - * Unlike the function date, idate - * accepts just one char in the format parameter. - * - * @param string $format - * The following characters are recognized in the - * format parameter string - * - * - * - * format character - * Description - * - * - * - * - * B - * Swatch Beat/Internet Time - * - * - * d - * Day of the month - * - * - * h - * Hour (12 hour format) - * - * - * H - * Hour (24 hour format) - * - * - * i - * Minutes - * - * - * I (uppercase i) - * returns 1 if DST is activated, - * 0 otherwise - * - * - * L (uppercase l) - * returns 1 for leap year, - * 0 otherwise - * - * - * m - * Month number - * - * - * N - * ISO-8601 day of the week (1 for Monday - * through 7 for Sunday) - * - * - * o - * ISO-8601 year (4 digits) - * - * - * s - * Seconds - * - * - * t - * Days in current month - * - * - * U - * Seconds since the Unix Epoch - January 1 1970 00:00:00 UTC - - * this is the same as time - * - * - * w - * Day of the week (0 on Sunday) - * - * - * W - * ISO-8601 week number of year, weeks starting on - * Monday - * - * - * y - * Year (1 or 2 digits - check note below) - * - * - * Y - * Year (4 digits) - * - * - * z - * Day of the year - * - * - * Z - * Timezone offset in seconds - * - * - * - * - * @param int $timestamp The optional timestamp parameter is an - * int Unix timestamp that defaults to the current - * local time if timestamp is omitted or NULL. In other - * words, it defaults to the value of time. - * @return int Returns an int on success. - * - * As idate always returns an int and - * as they can't start with a "0", idate may return - * fewer digits than you would expect. See the example below. - * @throws DatetimeException - * - */ -function idate(string $format, int $timestamp = null): int -{ - error_clear_last(); - if ($timestamp !== null) { - $result = \idate($format, $timestamp); - } else { - $result = \idate($format); - } - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * Returns the Unix timestamp corresponding to the arguments - * given. This timestamp is a long integer containing the number of - * seconds between the Unix Epoch (January 1 1970 00:00:00 GMT) and the time - * specified. - * - * Arguments may be left out in order from right to left; any - * arguments thus omitted will be set to the current value according - * to the local date and time. - * - * @param int $hour The number of the hour relative to the start of the day determined by - * month, day and year. - * Negative values reference the hour before midnight of the day in question. - * Values greater than 23 reference the appropriate hour in the following day(s). - * @param int $minute The number of the minute relative to the start of the hour. - * Negative values reference the minute in the previous hour. - * Values greater than 59 reference the appropriate minute in the following hour(s). - * @param int $second The number of seconds relative to the start of the minute. - * Negative values reference the second in the previous minute. - * Values greater than 59 reference the appropriate second in the following minute(s). - * @param int $month The number of the month relative to the end of the previous year. - * Values 1 to 12 reference the normal calendar months of the year in question. - * Values less than 1 (including negative values) reference the months in the previous year in reverse order, so 0 is December, -1 is November, etc. - * Values greater than 12 reference the appropriate month in the following year(s). - * @param int $day The number of the day relative to the end of the previous month. - * Values 1 to 28, 29, 30 or 31 (depending upon the month) reference the normal days in the relevant month. - * Values less than 1 (including negative values) reference the days in the previous month, so 0 is the last day of the previous month, -1 is the day before that, etc. - * Values greater than the number of days in the relevant month reference the appropriate day in the following month(s). - * @param int $year The number of the year, may be a two or four digit value, - * with values between 0-69 mapping to 2000-2069 and 70-100 to - * 1970-2000. On systems where time_t is a 32bit signed integer, as - * most common today, the valid range for year - * is somewhere between 1901 and 2038. - * @return int mktime returns the Unix timestamp of the arguments - * given. - * If the arguments are invalid, the function returns FALSE. - * @throws DatetimeException - * - */ -function mktime(int $hour, int $minute = null, int $second = null, int $month = null, int $day = null, int $year = null): int -{ - error_clear_last(); - if ($year !== null) { - $result = \mktime($hour, $minute, $second, $month, $day, $year); - } elseif ($day !== null) { - $result = \mktime($hour, $minute, $second, $month, $day); - } elseif ($month !== null) { - $result = \mktime($hour, $minute, $second, $month); - } elseif ($second !== null) { - $result = \mktime($hour, $minute, $second); - } elseif ($minute !== null) { - $result = \mktime($hour, $minute); - } else { - $result = \mktime($hour); - } - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * Format the time and/or date according to locale settings. Month and weekday - * names and other language-dependent strings respect the current locale set - * with setlocale. - * - * Not all conversion specifiers may be supported by your C library, in which - * case they will not be supported by PHP's strftime. - * Additionally, not all platforms support negative timestamps, so your - * date range may be limited to no earlier than the Unix epoch. This means that - * %e, %T, %R and, %D (and possibly others) - as well as dates prior to - * Jan 1, 1970 - will not work on Windows, some Linux - * distributions, and a few other operating systems. For Windows systems, a - * complete overview of supported conversion specifiers can be found at - * MSDN. - * - * @param string $format - * The following characters are recognized in the - * format parameter string - * - * - * - * format - * Description - * Example returned values - * - * - * - * - * Day - * --- - * --- - * - * - * %a - * An abbreviated textual representation of the day - * Sun through Sat - * - * - * %A - * A full textual representation of the day - * Sunday through Saturday - * - * - * %d - * Two-digit day of the month (with leading zeros) - * 01 to 31 - * - * - * %e - * - * Day of the month, with a space preceding single digits. Not - * implemented as described on Windows. See below for more information. - * - * 1 to 31 - * - * - * %j - * Day of the year, 3 digits with leading zeros - * 001 to 366 - * - * - * %u - * ISO-8601 numeric representation of the day of the week - * 1 (for Monday) through 7 (for Sunday) - * - * - * %w - * Numeric representation of the day of the week - * 0 (for Sunday) through 6 (for Saturday) - * - * - * Week - * --- - * --- - * - * - * %U - * Week number of the given year, starting with the first - * Sunday as the first week - * 13 (for the 13th full week of the year) - * - * - * %V - * ISO-8601:1988 week number of the given year, starting with - * the first week of the year with at least 4 weekdays, with Monday - * being the start of the week - * 01 through 53 (where 53 - * accounts for an overlapping week) - * - * - * %W - * A numeric representation of the week of the year, starting - * with the first Monday as the first week - * 46 (for the 46th week of the year beginning - * with a Monday) - * - * - * Month - * --- - * --- - * - * - * %b - * Abbreviated month name, based on the locale - * Jan through Dec - * - * - * %B - * Full month name, based on the locale - * January through December - * - * - * %h - * Abbreviated month name, based on the locale (an alias of %b) - * Jan through Dec - * - * - * %m - * Two digit representation of the month - * 01 (for January) through 12 (for December) - * - * - * Year - * --- - * --- - * - * - * %C - * Two digit representation of the century (year divided by 100, truncated to an integer) - * 19 for the 20th Century - * - * - * %g - * Two digit representation of the year going by ISO-8601:1988 standards (see %V) - * Example: 09 for the week of January 6, 2009 - * - * - * %G - * The full four-digit version of %g - * Example: 2008 for the week of January 3, 2009 - * - * - * %y - * Two digit representation of the year - * Example: 09 for 2009, 79 for 1979 - * - * - * %Y - * Four digit representation for the year - * Example: 2038 - * - * - * Time - * --- - * --- - * - * - * %H - * Two digit representation of the hour in 24-hour format - * 00 through 23 - * - * - * %k - * Hour in 24-hour format, with a space preceding single digits - * 0 through 23 - * - * - * %I - * Two digit representation of the hour in 12-hour format - * 01 through 12 - * - * - * %l (lower-case 'L') - * Hour in 12-hour format, with a space preceding single digits - * 1 through 12 - * - * - * %M - * Two digit representation of the minute - * 00 through 59 - * - * - * %p - * UPPER-CASE 'AM' or 'PM' based on the given time - * Example: AM for 00:31, - * PM for 22:23. The exact result depends on the - * Operating System, and they can also return lower-case variants, or - * variants with dots (such as a.m.). - * - * - * %P - * lower-case 'am' or 'pm' based on the given time - * Example: am for 00:31, - * pm for 22:23. Not supported by all Operating - * Systems. - * - * - * %r - * Same as "%I:%M:%S %p" - * Example: 09:34:17 PM for 21:34:17 - * - * - * %R - * Same as "%H:%M" - * Example: 00:35 for 12:35 AM, 16:44 for 4:44 PM - * - * - * %S - * Two digit representation of the second - * 00 through 59 - * - * - * %T - * Same as "%H:%M:%S" - * Example: 21:34:17 for 09:34:17 PM - * - * - * %X - * Preferred time representation based on locale, without the date - * Example: 03:59:16 or 15:59:16 - * - * - * %z - * The time zone offset. Not implemented as described on - * Windows. See below for more information. - * Example: -0500 for US Eastern Time - * - * - * %Z - * The time zone abbreviation. Not implemented as described on - * Windows. See below for more information. - * Example: EST for Eastern Time - * - * - * Time and Date Stamps - * --- - * --- - * - * - * %c - * Preferred date and time stamp based on locale - * Example: Tue Feb 5 00:45:10 2009 for - * February 5, 2009 at 12:45:10 AM - * - * - * %D - * Same as "%m/%d/%y" - * Example: 02/05/09 for February 5, 2009 - * - * - * %F - * Same as "%Y-%m-%d" (commonly used in database datestamps) - * Example: 2009-02-05 for February 5, 2009 - * - * - * %s - * Unix Epoch Time timestamp (same as the time - * function) - * Example: 305815200 for September 10, 1979 08:40:00 AM - * - * - * %x - * Preferred date representation based on locale, without the time - * Example: 02/05/09 for February 5, 2009 - * - * - * Miscellaneous - * --- - * --- - * - * - * %n - * A newline character ("\n") - * --- - * - * - * %t - * A Tab character ("\t") - * --- - * - * - * %% - * A literal percentage character ("%") - * --- - * - * - * - * - * - * Windows only: - * - * The %e modifier is not supported in the Windows - * implementation of this function. To achieve this value, the - * %#d modifier can be used instead. The example below - * illustrates how to write a cross platform compatible function. - * - * The %z and %Z modifiers both - * return the time zone name instead of the offset or abbreviation. - * @param int $timestamp The optional timestamp parameter is an - * int Unix timestamp that defaults to the current - * local time if timestamp is omitted or NULL. In other - * words, it defaults to the value of time. - * @return string Returns a string formatted according format - * using the given timestamp or the current - * local time if no timestamp is given. Month and weekday names and - * other language-dependent strings respect the current locale set - * with setlocale. - * The function returns FALSE if format is empty, contains unsupported - * conversion specifiers, or if the length of the returned string would be greater than - * 4095. - * @throws DatetimeException - * - */ -function strftime(string $format, int $timestamp = null): string -{ - error_clear_last(); - if ($timestamp !== null) { - $result = \strftime($format, $timestamp); - } else { - $result = \strftime($format); - } - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * strptime returns an array with the - * timestamp parsed. - * - * Month and weekday names and other language dependent strings respect the - * current locale set with setlocale (LC_TIME). - * - * @param string $timestamp The string to parse (e.g. returned from strftime). - * @param string $format The format used in timestamp (e.g. the same as - * used in strftime). Note that some of the format - * options available to strftime may not have any - * effect within strptime; the exact subset that are - * supported will vary based on the operating system and C library in - * use. - * - * For more information about the format options, read the - * strftime page. - * @return array Returns an array. - * - * - * The following parameters are returned in the array - * - * - * - * parameters - * Description - * - * - * - * - * "tm_sec" - * Seconds after the minute (0-61) - * - * - * "tm_min" - * Minutes after the hour (0-59) - * - * - * "tm_hour" - * Hour since midnight (0-23) - * - * - * "tm_mday" - * Day of the month (1-31) - * - * - * "tm_mon" - * Months since January (0-11) - * - * - * "tm_year" - * Years since 1900 - * - * - * "tm_wday" - * Days since Sunday (0-6) - * - * - * "tm_yday" - * Days since January 1 (0-365) - * - * - * "unparsed" - * the timestamp part which was not - * recognized using the specified format - * - * - * - * - * @throws DatetimeException - * - */ -function strptime(string $timestamp, string $format): array -{ - error_clear_last(); - $result = \strptime($timestamp, $format); - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * Each parameter of this function uses the default time zone unless a - * time zone is specified in that parameter. Be careful not to use - * different time zones in each parameter unless that is intended. - * See date_default_timezone_get on the various - * ways to define the default time zone. - * - * @param string $datetime A date/time string. Valid formats are explained in Date and Time Formats. - * @param int $baseTimestamp The timestamp which is used as a base for the calculation of relative - * dates. - * @return int Returns a timestamp on success, FALSE otherwise. - * @throws DatetimeException - * - */ -function strtotime(string $datetime, int $baseTimestamp = null): int -{ - error_clear_last(); - if ($baseTimestamp !== null) { - $result = \strtotime($datetime, $baseTimestamp); - } else { - $result = \strtotime($datetime); - } - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} - - -/** - * - * - * @param string $abbr Time zone abbreviation. - * @param int $utcOffset Offset from GMT in seconds. Defaults to -1 which means that first found - * time zone corresponding to abbr is returned. - * Otherwise exact offset is searched and only if not found then the first - * time zone with any offset is returned. - * @param int $isDST Daylight saving time indicator. Defaults to -1, which means that - * whether the time zone has daylight saving or not is not taken into - * consideration when searching. If this is set to 1, then the - * utcOffset is assumed to be an offset with - * daylight saving in effect; if 0, then utcOffset - * is assumed to be an offset without daylight saving in effect. If - * abbr doesn't exist then the time zone is - * searched solely by the utcOffset and - * isDST. - * @return string Returns time zone name on success. - * @throws DatetimeException - * - */ -function timezone_name_from_abbr(string $abbr, int $utcOffset = -1, int $isDST = -1): string -{ - error_clear_last(); - $result = \timezone_name_from_abbr($abbr, $utcOffset, $isDST); - if ($result === false) { - throw DatetimeException::createFromPhpError(); - } - return $result; -} |