hphp/hack/hhi/stdlib/builtins_datetime.hhi (250 lines of code) (raw):
<?hh    /* -*- php -*- */
/**
 * Copyright (c) 2014, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the "hack" directory of this source tree.
 *
 */
const string DATE_ATOM    = "";
const string DATE_COOKIE  = "";
const string DATE_ISO8601 = "";
const string DATE_RFC1036 = "";
const string DATE_RFC1123 = "";
const string DATE_RFC2822 = "";
const string DATE_RFC3339 = "";
const string DATE_RFC822  = "";
const string DATE_RFC850  = "";
const string DATE_RSS     = "";
const string DATE_W3C     = "";
const int DAY_1 = 131079;
const int DAY_2 = 131080;
const int DAY_3 = 131081;
const int DAY_4 = 131082;
const int DAY_5 = 131083;
const int DAY_6 = 131084;
const int DAY_7 = 131085;
type DateTimeErrors = shape(
  'warning_count' => int,
  'warnings' => darray<int, string>,
  'error_count' => int,
  'errors' => darray<int, string>
);
<<__PHPStdLib>>
function checkdate(int $month, int $day, int $year);
<<__PHPStdLib>>
function date_add($datetime, $interval);
<<__PHPStdLib>>
function date_create_from_format(string $format, string $time, $timezone = null);
<<__PHPStdLib>>
function date_create($time = null, $timezone = null);
<<__PHPStdLib>>
function date_date_set($object, int $year, int $month, int $day);
<<__PHPStdLib>>
function date_default_timezone_get();
<<__PHPStdLib>>
function date_default_timezone_set(string $name);
<<__PHPStdLib>>
function date_diff($datetime, $datetime2, bool $absolute = false);
<<__PHPStdLib>>
function date_format($object, string $format);
<<__PHPStdLib>>
function date_get_last_errors();
<<__PHPStdLib>>
function date_interval_create_from_date_string(string $time);
<<__PHPStdLib>>
function date_interval_format($interval, string $format_spec);
<<__PHPStdLib>>
function date_isodate_set($object, int $year, int $week, int $day = 1);
<<__PHPStdLib>>
function date_modify($object, string $modify);
<<__PHPStdLib>>
function date_offset_get($object);
<<__PHPStdLib>>
function date_parse(string $date);
<<__PHPStdLib>>
function date_sub($datetime, $interval);
<<__PHPStdLib>>
function date_sun_info(int $ts, float $latitude, float $longitude);
<<__PHPStdLib>>
function date_sunrise(int $timestamp, int $format = 0, ?float $latitude = null, ?float $longitude = null, ?float $zenith = null, ?float $gmt_offset = null);
<<__PHPStdLib>>
function date_sunset(int $timestamp, int $format = 0, ?float $latitude = null, ?float $longitude = null, ?float $zenith = null, ?float $gmt_offset = null);
<<__PHPStdLib>>
function date_time_set($object, int $hour, int $minute, int $second = 0);
<<__PHPStdLib>>
function date_timestamp_get($datetime);
<<__PHPStdLib>>
function date_timestamp_set($datetime, int $timestamp);
<<__PHPStdLib>>
function date_timezone_get($object);
<<__PHPStdLib>>
function date_timezone_set($object, $timezone);
<<__PHPStdLib>>
function date(string $format, ?int $timestamp = null)/*: string*/ { }
<<__PHPStdLib>>
function getdate(?int $timestamp = null);
<<__PHPStdLib>>
function gettimeofday(bool $return_float = false);
<<__PHPStdLib>>
function gmdate(string $format, ?int $timestamp = null);
<<__PHPStdLib>>
function gmmktime(int $hour = PHP_INT_MAX, int $minute = PHP_INT_MAX, int $second = PHP_INT_MAX, int $month = PHP_INT_MAX, int $day = PHP_INT_MAX, int $year = PHP_INT_MAX);
<<__PHPStdLib>>
function gmstrftime(string $format, ?int $timestamp = null);
<<__PHPStdLib>>
function idate(string $format, ?int $timestamp = null);
<<__PHPStdLib>>
function localtime(?int $timestamp = null, bool $is_associative = false);
<<__PHPStdLib>>
function microtime(bool $get_as_float = false)[leak_safe];
<<__PHPStdLib>>
function mktime(int $hour = PHP_INT_MAX, int $minute = PHP_INT_MAX, int $second = PHP_INT_MAX, int $month = PHP_INT_MAX, int $day = PHP_INT_MAX, int $year = PHP_INT_MAX)[leak_safe];
<<__PHPStdLib>>
function strftime(string $format, ?int $timestamp = null)[leak_safe];
<<__PHPStdLib>>
function strptime(string $date, string $format);
<<__PHPStdLib>>
function strtotime(string $input, ?int $timestamp = null)[leak_safe];
<<__PHPStdLib>>
function time()[leak_safe]: int;
<<__PHPStdLib>>
function timezone_abbreviations_list();
<<__PHPStdLib>>
function timezone_identifiers_list(int $what = 2047, string $country = '');
<<__PHPStdLib>>
function timezone_location_get($timezone);
<<__PHPStdLib>>
function timezone_name_from_abbr(string $abbr, int $gmtoffset = -1, int $isdst = 1);
<<__PHPStdLib>>
function timezone_name_get($object);
<<__PHPStdLib>>
function timezone_offset_get($object, $dt);
<<__PHPStdLib>>
function timezone_open(string $timezone);
<<__PHPStdLib>>
function timezone_transitions_get(DateTimeZone $object,
                                  int $timestamp_begin = PHP_INT_MIN,
                                  int $timestamp_end = PHP_INT_MAX);
<<__PHPStdLib>>
function timezone_version_get();
interface DateTimeInterface {
  public function diff(DateTimeInterface $datetime2, bool $absolute = false);
  public function format(string $format);
  public function getOffset();
  public function getTimestamp()[];
  public function getTimezone();
}
class DateTime implements DateTimeInterface {
  const string ATOM = '';
  const string COOKIE = '';
  const string ISO8601 = '';
  const string RFC822 = '';
  const string RFC850 = '';
  const string RFC1036 = '';
  const string RFC1123 = '';
  const string RFC2822 = '';
  const string RFC3339 = '';
  const string RSS = '';
  const string W3C = '';
  public function __construct(string $time = 'now', ?DateTimeZone $timezone = null)[leak_safe];
  public function add(DateInterval $interval);
  public function modify(string $modify);
  public function getOffset(): int;
  public function getTimestamp()[]: int;
  public function getTimezone();
  public function setDate(int $year, int $month, int $day);
  public function setISODate(int $year, int $week, int $day = 1);
  public function setTime(int $hour, int $minute, int $second = 0);
  public function setTimestamp(int $unixtimestamp): this;
  public function setTimezone(DateTimeZone $timezone);
  public function sub(DateInterval $interval);
  public function diff(DateTimeInterface $datetime2, bool $absolute = false);
  public function format(string $format);
  public static function createFromFormat(
    string $format,
    string $time,
    ?DateTimeZone $timezone = null,
  );
  public static function getLastErrors(): DateTimeErrors;
}
class DateTimeImmutable implements DateTimeInterface {
  private DateTime $data;
  public function __construct(string $time = 'now', ?DateTimeZone $timezone = null);
  public function add(DateInterval $interval): this;
  public function modify(string $modify): this;
  public function getOffset(): int;
  public function getTimestamp()[]: int;
  public function getTimezone();
  public function setDate(int $year, int $month, int $day): this;
  public function setISODate(int $year, int $week, int $day = 1): this;
  public function setTime(int $hour, int $minute, int $second = 0): this;
  public function setTimestamp(int $unixtimestamp): this;
  public function setTimezone(DateTimeZone $timezone): this;
  public function sub(DateInterval $interval): this;
  public function diff(DateTimeInterface $datetime2, bool $absolute = false);
  public function format(string $format);
  public static function createFromFormat(
    string $format,
    string $time,
    ?DateTimeZone $timezone = null,
  );
  public static function createFromMutable(DateTime $datetime);
  public static function getLastErrors(): DateTimeErrors;
  public function __clone();
}
class DateTimeZone {
  const int AFRICA = 0;
  const int AMERICA = 0;
  const int ANTARCTICA = 0;
  const int ARCTIC = 0;
  const int ASIA = 0;
  const int ATLANTIC = 0;
  const int AUSTRALIA = 0;
  const int EUROPE = 0;
  const int INDIAN = 0;
  const int PACIFIC = 0;
  const int UTC = 0;
  const int ALL = 0;
  const int ALL_WITH_BC = 0;
  const int PER_COUNTRY = 0;
  public function __construct(string $timezone)[];
  public function getLocation()[]: darray { }
  public function getName()[]: string { }
  public function getOffset(DateTimeInterface $datetime)[];
  public function getTransitions(int $timestamp_begin = PHP_INT_MIN,
                                 int $timestamp_end = PHP_INT_MAX)[];
  static public function listAbbreviations()[];
  static public function listIdentifiers(int $what = 2047, string $country = '')[];
}
class DateInterval {
  public int $y;
  public int $m;
  public int $d;
  public int $h;
  public int $i;
  public int $s;
  public int $invert;
  public mixed $days;
  public function __construct(string $interval_spec);
  static public function createFromDateString(string $time);
  public function format(string $format);
}
class DatePeriod implements Iterator<DateTime> {
  const int EXCLUDE_START_DATE = 1;
  public function __construct(
    /* DateTimeInterface */ $start, // date string converts
    DateInterval $interval,
    /* ?DateTimeInterface */ $end = null, // date string converts
    int $options = 0,
  );
  public function current(): DateTime;
  public function rewind(): void;
  public function key();
  public function next();
  public function valid(): bool;
  public function getStartDate(): DateTime;
  public function getEndDate(): DateTime;
  public function getDateInterval(): DateInterval;
}