Определение текущей даты и времени

Задача
Необходимо узнать текущее время или дату.

Решение
Для получения отформатированной строки времени предназначена функция strftime() или date():

print strftime('%c');
print date('r');
Mon Aug 12 18:23:45 2002
Mon, 12 Aug 2002 18:23:45 -0400

Функции getdate() и localtime() позволяют получить отдельные части времени:

$now_1 = getdate();
$now_2 = localtime();
print "$now_1[hours]:$now_1[minutes]:$now_1[seconds]";
print "$now_2[2]:$now_2[1]:$now_2[0]";
18:23:45
18:23:45

Обсуждение
Функции strftime() и date() могут выработать множество отформатированных строк времени или даты и рассматриваются в рецепте 3.4. Напротив, и функция localtime(), и функция getdate() возвращают массив, элементами которого являются отдельные части даты и времени. Следующий пример показывает, как использовать функцию getdate() для вывода на печать месяца, дня и года.

$a = getdate();
printf('%s %d, %d',$a['month'],$a['mday'],$a['year']);
August 7, 2002

Передайте фунции getdate() метку времени UNIX в качестве аргумента, чтобы обеспечить соответствие значений массива локальному времени данной временной метки.


Например, месяц, день и год, соответствующие метке времени UNIX, равной 163727100, это:

$a = getdate(163727100);
printf('%s %d, %d',$a['month'],$a['mday'],$a['year']);
March 10, 1975

Функция localtime() возвращает массив частей времени и даты. Кроме того, она принимает метку времени UNIX в качестве необязательного первого аргумента, а также логическое значение в качестве необязательного второго аргумента. Если этот второй аргумент равен true, то функция localtime() возвращает ассоциативный массив вместо массива с числовым индексом. Ключи этого массива совпадают с членами структуры tm_struct, возвращаемой функцией языка C localtime(). Следующий пример показывает, как использовать функцию localtime() для вывода на печать текущей даты в формате месяц/число/год:

$a = localtime();
$a[4] += 1;
$a[5] += 1900;
print "$a[4]/$a[3]/$a[5]";
8/7/2002

Перед выводом на печать значение месяца увеличивается на 1, так как функция localtime() начинает отсчет месяцев с 0 для января, а мы хотим видеть 1, если текущий месяц январь. Таким же образом год увеличивается на 1900, поскольку функция localtime() начинает отсчет лет с 0 для 1900-го. Подобно getdate(), функция localtime() принимает метку времени UNIX в качестве необязательного первого аргумента и возвращает части времени для этой временной метки:

$a = localtime(163727100);
$a[4] += 1;
$a[5] += 1900;
print "$a[4]/$a[3]/$a[5]";
3/10/1975

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Вывод на печать даты и времени в определенном формате
Выделение дат и времен из строк
Выработка высокоточного времени
Определение дня недели, месяца, года или номера недели в году
Определение разности между датами юлианского календаря

Вернуться в раздел: PHP / 3. Дата и время