Mid-Atlantic Developer Conference - Call for Speakers


(PHP 4, PHP 5, PHP 7)

getdateВозвращает информацию о дате/времени


array getdate ([ int $timestamp = time() ] )

Возвращает ассоциативный массив (array), содержащий информацию о дате, представленной меткой времени timestamp или текущим системным временем, если timestamp не был передан.

Список параметров


Необязательный параметр timestamp представляет собой метку времени типа integer, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает ассоциативный массив (array) с информацией о параметре timestamp, который содержит следующие элементы:

Индексы возвращаемого ассоциативного массива
Индекс Описание Пример значения
"seconds" Числовое представление секунд от 0 до 59
"minutes" Числовое представление минут от 0 до 59
"hours" Числовое представление часов от 0 до 23
"mday" Порядковый номер дня месяца от 1 до 31
"wday" Порядковый номер дня недели от 0 (воскресенье) до 6 (суббота)
"mon" Порядковый номер месяца от 1 до 12
"year" Номер года, 4 цифры Примеры: 1999, 2003
"yday" Порядковый номер дня в году от 0 до 365
"weekday" Полное наименование дня недели от Sunday до Saturday
"month" Полное наименование месяца, например, January или March от January до December
0 Количество секунд, прошедших с начала эпохи Unix (The Unix Epoch), подобно значению, возвращаемому функцией time() и используемому функцией date(). Зависит от платформы, в большинстве случаев от -2147483648 до 2147483647.


Пример #1 Пример использования функции getdate()


Результатом выполнения данного примера будет что-то подобное:

    [seconds] => 40
    [minutes] => 58
    [hours]   => 21
    [mday]    => 17
    [wday]    => 2
    [mon]     => 6
    [year]    => 2003
    [yday]    => 167
    [weekday] => Tuesday
    [month]   => June
    [0]       => 1055901520

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • idate() - Преобразует локальное время/дату в целое число
  • localtime() - Возвращает локальное время
  • time() - Возвращает текущую метку времени Unix
  • setlocale() - Устанавливает настройки локали

add a note add a note

User Contributed Notes 5 notes

vimal866 at gmail dot com
2 years ago
Andre's code will throw an error. for the following line
     $d = $todayh[mday];
     $m = $todayh[mon];
     $y = $todayh[year];

"Notice : Undefined constant mday ,mon,year"

As is, it was looking for constants called mday, mon, year etc. When it doesn't find such a constant, PHP interprets it as a string.

like any other request it should be wrapped in quotes like this

     $d = $todayh['mday'];
     $m = $todayh['mon'];
     $y = $todayh['year'];
Yura Pylypenko (plyrvt at mail dot ru)
14 years ago
In addition to canby23 at ms19 post:
It's a very bad idea to consider day having 24 hours (86400 secs), because some days have 23, some - 25 hours due to daylight saving changes. Using of mkdate() and strtotime() is always preferred. strtotime() also has a very nice behaviour of datetime manipulations:
echo strtotime ("+1 day"), "\n";
strtotime ("+1 week"), "\n";
strtotime ("+1 week 2 days 4 hours 2 seconds"), "\n";
strtotime ("next Thursday"), "\n";
strtotime ("last Monday"), "\n";
andre at anlex dot co dot za
11 years ago
I thought best to show a posseble way to go about bypassing the end month issue where the first day in a new month will have the monday of the week that it falls in - in the old month. Use the numbering of days as the constant and work you way from there.

$now = time();
$num = date("w");
if (
$num == 0)
$sub = 6; }
else {
$sub = ($num-1); }
$WeekMon  = mktime(0, 0, 0, date("m", $now)  , date("d", $now)-$sub, date("Y", $now));    //monday week begin calculation
$todayh = getdate($WeekMon); //monday week begin reconvert

$d = $todayh[mday];
$m = $todayh[mon];
$y = $todayh[year];
"$d-$m-$y"; //getdate converted day


Allot less code makes everyone happy..
timforte at gmail dot com
10 years ago
It's worth noting that this is local time, not UTC/GMT - gmgetdate doesn't exist :(.

The most logical way to handle date arithmetic without hitting DST problems is to work in UTC...

function add_days($my_date,$numdays) {
$date_t = strtotime($my_date.' UTC');
gmdate('Y-m-d',$date_t + ($numdays*86400));

[it's even faster if you use gmmktime instead of strtotime]
eric dot schultz at NOSPAM dot CyVon dot com
9 years ago
Here is another gmgetdate that is a little faster/suscint (no loops).

function gmgetdate2($ts = null){
$k = array('seconds','minutes','hours','mday',

It also returns the values in the same order as getdate.
To Top