(PHP 4, PHP 5)

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() - Устанавливает настройки локали


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"
2003-09-15 09:29:38
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(000date("m"$now)  , date("d"$now)-$subdate("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..
2006-12-13 06:38:52
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]
2008-01-10 10:07:45
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.
2008-12-16 20:33:50
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'];
2015-12-13 10:34:36
another gmgetdate that is a little faster/suscint (no loops). 

function gmgetdate2($ts null){ 
$k = array('seconds','minutes','hours','mday'
2018-05-23 19:34:08

    Поддержать сайт на родительском проекте КГБ