Определение текущей даты и времени при помощи PHP
Решение
Для получения отформатированной строки времени предназначена функция 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() могут выработать множество отформатированных строк времени или даты и рассматриваются в рецепте описанных ниже. Напротив, и функция localtime(), и функция getdate() возвращают массив, элементами которого являются отдельные части даты и времени.
Ассоциативный массив, который возвращает функция getdate(), содержит пары ключ/значение, перечисленные в таблице:
Массив, возвращаемый функцией
getdate()
Ключ
Значение
seconds
Секунды
minutes
Минуты
hours
Часы
mday
День месяца
wday
День недели, числовое значение (воскресенье – это 0, суббота – это 6)
mon
Месяц, числовое значение
year
Год, числовое значение
yday
День года, числовое значение (т. е. 299)
weekday
День недели, полное текстовое значение (т. е. «Friday»)
month
Месяц, полное текстовое значение (т. е. «January»)
Следующий пример показывает, как использовать функцию getdate() для вывода на печать месяца, дня и года (*)
$a = getdate();
printf('%s %d, %d',$a['month'],$a['mday'],$a['year']);
August 7, 2017
Передайте фунции 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()
Числовая позиция
Ключ
Значение
0
tm_sec
Секунды
1
tm_min
Минуты
2
tm_hour
Часы
3
tm_mday
День месяца
4
tm_mon
Месяц года (Январь, если 0)
5
tm_year
Год с 1900 года
6
tm_wday
День недели
7
tm_yday
День года
8
tm_isdst
Учитывается ли переход на летнее время (DST)?
Следующий пример показывает, как использовать функцию localtime() для вывода на печать текущей даты в формате месяц/число/год:
$a = localtime();
$a[4] += 1;
$a[5] += 1900;
print "$a[4]/$a[3]/$a[5]";
8/6/2017
Перед выводом на печать значение месяца увеличивается на 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
(*) Для того чтобы название месяца или дня недели выводилось на русском языке, следует установить нужную локализацию с помощью функции setlocale(). Например, для кодировки Windows-1251 можно попробовать написать:
setlocale(LC_ALL,"ru_RU.CP1251");
echo strftime(«F»);
Комментарии:
Комментариев нет
|
|
|