| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- <?php
- namespace Faker\Extension;
- /**
- * FakerPHP extension for Date-related randomization.
- *
- * Functions accepting a date string use the `strtotime()` function internally.
- *
- * @experimental
- *
- * @since 1.20.0
- */
- interface DateTimeExtension
- {
- /**
- * Get a DateTime object between January 1, 1970, and `$until` (defaults to "now").
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- * @param string|null $timezone zone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
- *
- * @see \DateTimeZone
- * @see http://php.net/manual/en/timezones.php
- * @see http://php.net/manual/en/function.date-default-timezone-get.php
- *
- * @example DateTime('2005-08-16 20:39:21')
- */
- public function dateTime($until = 'now', string $timezone = null): \DateTime;
- /**
- * Get a DateTime object for a date between January 1, 0001, and now.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- * @param string|null $timezone zone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
- *
- * @example DateTime('1265-03-22 21:15:52')
- *
- * @see http://php.net/manual/en/timezones.php
- * @see http://php.net/manual/en/function.date-default-timezone-get.php
- */
- public function dateTimeAD($until = 'now', string $timezone = null): \DateTime;
- /**
- * Get a DateTime object a random date between `$from` and `$until`.
- * Accepts date strings that can be recognized by `strtotime()`.
- *
- * @param \DateTime|string $from defaults to 30 years ago
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- * @param string|null $timezone zone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
- *
- * @see \DateTimeZone
- * @see http://php.net/manual/en/timezones.php
- * @see http://php.net/manual/en/function.date-default-timezone-get.php
- */
- public function dateTimeBetween($from = '-30 years', $until = 'now', string $timezone = null): \DateTime;
- /**
- * Get a DateTime object based on a random date between `$from` and an interval.
- * Accepts date string that can be recognized by `strtotime()`.
- *
- * @param \DateTime|int|string $from defaults to 30 years ago
- * @param string $interval defaults to 5 days after
- * @param string|null $timezone zone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
- *
- * @see \DateTimeZone
- * @see http://php.net/manual/en/timezones.php
- * @see http://php.net/manual/en/function.date-default-timezone-get.php
- */
- public function dateTimeInInterval($from = '-30 years', string $interval = '+5 days', string $timezone = null): \DateTime;
- /**
- * Get a date time object somewhere inside the current week.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- * @param string|null $timezone zone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
- *
- * @see \DateTimeZone
- * @see http://php.net/manual/en/timezones.php
- * @see http://php.net/manual/en/function.date-default-timezone-get.php
- */
- public function dateTimeThisWeek($until = 'now', string $timezone = null): \DateTime;
- /**
- * Get a date time object somewhere inside the current month.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- * @param string|null $timezone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
- *
- * @see \DateTimeZone
- * @see http://php.net/manual/en/timezones.php
- * @see http://php.net/manual/en/function.date-default-timezone-get.php
- */
- public function dateTimeThisMonth($until = 'now', string $timezone = null): \DateTime;
- /**
- * Get a date time object somewhere inside the current year.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- * @param string|null $timezone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
- *
- * @see \DateTimeZone
- * @see http://php.net/manual/en/timezones.php
- * @see http://php.net/manual/en/function.date-default-timezone-get.php
- */
- public function dateTimeThisYear($until = 'now', string $timezone = null): \DateTime;
- /**
- * Get a date time object somewhere inside the current decade.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- * @param string|null $timezone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
- *
- * @see \DateTimeZone
- * @see http://php.net/manual/en/timezones.php
- * @see http://php.net/manual/en/function.date-default-timezone-get.php
- */
- public function dateTimeThisDecade($until = 'now', string $timezone = null): \DateTime;
- /**
- * Get a date time object somewhere inside the current century.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- * @param string|null $timezone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
- *
- * @see \DateTimeZone
- * @see http://php.net/manual/en/timezones.php
- * @see http://php.net/manual/en/function.date-default-timezone-get.php
- */
- public function dateTimeThisCentury($until = 'now', string $timezone = null): \DateTime;
- /**
- * Get a date string between January 1, 1970, and `$until`.
- *
- * @param string $format DateTime format
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- *
- * @see https://www.php.net/manual/en/datetime.format.php
- */
- public function date(string $format = 'Y-m-d', $until = 'now'): string;
- /**
- * Get a time string (24h format by default).
- *
- * @param string $format DateTime format
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- *
- * @see https://www.php.net/manual/en/datetime.format.php
- */
- public function time(string $format = 'H:i:s', $until = 'now'): string;
- /**
- * Get a UNIX (POSIX-compatible) timestamp between January 1, 1970, and `$until`.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- */
- public function unixTime($until = 'now'): int;
- /**
- * Get a date string according to the ISO-8601 standard.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- */
- public function iso8601($until = 'now'): string;
- /**
- * Get a string containing either "am" or "pm".
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- *
- * @example 'am'
- */
- public function amPm($until = 'now'): string;
- /**
- * Get a localized random day of the month.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- *
- * @example '16'
- */
- public function dayOfMonth($until = 'now'): string;
- /**
- * Get a localized random day of the week.
- *
- * Uses internal DateTime formatting, hence PHP's internal locale will be used (change using `setlocale()`).
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- *
- * @example 'Tuesday'
- *
- * @see setlocale
- * @see https://www.php.net/manual/en/function.setlocale.php Set a different output language
- */
- public function dayOfWeek($until = 'now'): string;
- /**
- * Get a random month (numbered).
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- *
- * @example '7'
- */
- public function month($until = 'now'): string;
- /**
- * Get a random month.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- *
- * @see setlocale
- * @see https://www.php.net/manual/en/function.setlocale.php Set a different output language
- *
- * @example 'September'
- */
- public function monthName($until = 'now'): string;
- /**
- * Get a random year between 1970 and `$until`.
- *
- * @param \DateTime|int|string $until maximum timestamp, defaults to "now"
- *
- * @example '1987'
- */
- public function year($until = 'now'): string;
- /**
- * Get a random century, formatted as Roman numerals.
- *
- * @example 'XVII'
- */
- public function century(): string;
- /**
- * Get a random timezone, uses `\DateTimeZone::listIdentifiers()` internally.
- *
- * @param string|null $countryCode two-letter ISO 3166-1 compatible country code
- *
- * @example 'Europe/Rome'
- */
- public function timezone(string $countryCode = null): string;
- }
|