Skip to content

Date and Time#

Methods accepting a $timezone argument default to date_default_timezone_get(). You can pass a custom timezone string to each method, or define a custom timezone for all time methods at once using $faker::setDefaultTimezone($timezone).

unixTime#

Generate an unix time between zero, and the given value. By default, now is used as input.

Optionally, a parameter can be supplied containing a DateTime, int or string.

echo $faker->unixTime();

// 1605544623, 1025544612

echo $faker->unixTime(new DateTime('+3 weeks'));

// unix timestamp between 0 and the date 3 weeks from now.

dateTime#

Generate a DateTime between January 1, 1970, and the given max. By default, now is used as max.

Optionally, a parameter can be supplied containing a DateTime, int or string.

An optional second parameter can be supplied, with the timezone.

echo $faker->dateTime();

// DateTime: August 12, 1991 

dateTimeAD#

Generate a DateTime between January 1, 0001, and the given max. By default, now is used as max.

An optional second parameter can be supplied, with the timezone.

echo $faker->dateTimeAD();

// DateTime: September 19, 718

iso8601#

Generate an ISO8601 formatted string between January 1, 0001, and the given max. By default, now is used as max.

echo $faker->iso8601();

date#

Generate a date string, with a given format and max value. By default, 'Y-m-d' and 'now' are used for the format and maximum value respectively.

echo $faker->date();

// '1999-06-09'

echo $faker->date('Y_m_d');

// '2011_02_19'

time#

Generate a time string, with a given format and max value. By default, H:i:s' and now are used for the format and maximum value respectively.

echo $faker->time();

// '12:02:50'

echo $faker->time('H_i_s');

// '20_49_12'

dateTimeBetween#

Generate a DateTime between two dates. By default, -30 years and now are used.

An optional third parameter can be supplied, with the timezone.

echo $faker->dateTimeBetween();

// a date between -30 years ago, and now

echo $faker->dateTimeBetween('-1 week', '+1 week');

// a date between -1 week ago, and 1 week from now

dateTimeInInterval#

Generate a DateTime between a date and an interval from that date. By default, the date is set to -30 years, and the interval is set to +5 days.

An optional third parameter can be supplied, with the timezone.

echo $faker->dateTimeInInterval();

// a date between -30 years ago, and -30 years + 5 days

echo $faker->dateTimeInInterval('-1 week', '+3 days');

// a date between -1 week ago, and -1 week + 3 days

dateTimeThisCentury#

Generate a DateTime that is within the current century. An optional $max value can be supplied, by default this is set to now.

An optional second parameter can be supplied, with the timezone.

echo $faker->dateTimeThisCentury();

// a date somewhere in this century

echo $faker->dateTimeThisCentury('+8 years');

// a date somewhere in this century, with an upper bound of +8 years

dateTimeThisDecade#

Generate a DateTime that is within the current decade. An optional $max value can be supplied, by default this is set to now.

An optional second parameter can be supplied, with the timezone.

echo $faker->dateTimeThisDecade();

// a date somewhere in this decade

echo $faker->dateTimeThisDecade('+2 years');

// a date somewhere in this decade, with an upper bound of +2 years

dateTimeThisYear#

Generate a DateTime that is within the current year. An optional $max value can be supplied, by default this is set to now.

An optional second parameter can be supplied, with the timezone.

echo $faker->dateTimeThisYear();

// a date somewhere in this year

echo $faker->dateTimeThisYear('+2 months');

// a date somewhere in this year, with an upper bound of +2 months

dateTimeThisMonth#

Generate a DateTime that is within the current month. An optional $max value can be supplied, by default this is set to now.

An optional second parameter can be supplied, with the timezone.

echo $faker->dateTimeThisMonth();

// a date somewhere in this months

echo $faker->dateTimeThisMonth('+12 days');

// a date somewhere in this month, with an upper bound of +12 days

amPm#

Generate a random DateTime, with a given upper bound, and return the am/pm string value. By default, the upper bound is set to now.

echo $faker->amPm();

// 'am'

echo $faker->amPm('+2 weeks');

// 'pm'

dayOfMonth#

Generate a random DateTime, with a given upper bound, and return the day of month string value. By default, the upper bound is set to now.

echo $faker->dayOfMonth();

// '24'

echo $faker->dayOfMonth('+2 weeks');

// '05'

dayOfWeek#

Generate a random DateTime, with a given upper bound, and return the day of week string value. By default, the upper bound is set to now.

echo $faker->dayOfWeek();

// 'Tuesday'

echo $faker->dayOfWeek('+2 weeks');

// 'Friday'

month#

Generate a random DateTime, with a given upper bound, and return the month's number string value. By default, the upper bound is set to now.

echo $faker->month();

// '9'

echo $faker->month('+10 weeks');

// '7'

monthName#

Generate a random DateTime, with a given upper bound, and return the month's name string value. By default, the upper bound is set to now.

echo $faker->monthName();

// 'September'

echo $faker->monthName('+10 weeks');

// 'April'

year#

Generate a random DateTime, with a given upper bound, and return the year's string value. By default, the upper bound is set to now.

echo $faker->year();

// '1998'

echo $faker->year('+10 years');

// '2022'

century#

Generate a random century name.

echo $faker->century();

// 'IX', 'XVII', 'II'

timezone#

Generate a random timezone name.

echo $faker->timezone();

// 'Europe/Amsterdam', 'America/Montreal'