Регистрация Войти
Войти через VK




Поиск по сайту



PHP Поиск



Медицинская справка в гаи для водителей при прохождении мед комиссии и экзаменов.

Представление даты и времени

В распределенных системах, таких, как Интернет, время играет особую роль. Из-за незначительного расхождения системных часов игрок на рынке Forex может потерять десятки тысяч долларов в течение нескольких минут; система деловой разведки ошибется в составлении прогноза; серверы NNTP в процессе синхронизации потеряют важную информацию, нужную пользователю и т.д.

PHP содержит множество функций для работы с датой и временем. Наиболее употребимыми являются:

  • time( ) - возвращает текущее абсолютное время. Это число равно количеству секунд, которое прошло с полуночи 1 января 1970 года (с начала эпохи UNIX).
  • getdate( ) - считывает информацию о дате и времени. Возвращает ассоциативный массив, содержащий информацию по заданному или по текущему (по умолчанию) времени. Массив содержит следующие элементы:

    secondsСекунды (0-59)
    minutesМинуты (0-59)
    hoursЧасы (0-23)
    mdayДень месяца (1-31)
    wdayДень недели (0-6), начиная с воскресенья
    monМесяц (1-12)
    yearГод
    ydayДень года (0-365)
    weekdayНазвание дня недели (например, Friday)
    monthНазвание месяца (например, January)
    0Абсолютное время

    Пример 1

    <html>
    <head>
    <title>Использование getdate()</title>
    </head>
    <body>
    <?php
    $d = getdate(); // использовано текущее время
    foreach ( $d as $key => $val )
    echo "$key = $val<br>";
    echo "<hr>Сегодня: $d[mday].$d[mon].$d[year]";
    ?>
    </body>
    </html>
    
    РЕЗУЛЬТАТ ПРИМЕРА 1:
    seconds = 21 minutes = 4 hours = 12 mday = 10 wday = 4 mon = 11 year = 2005 yday = 313 weekday = Thursday month = November 0 = 1131613461
    Сегодня: 10.11.2005

  • date( ) - форматирование даты и времени. Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. Строка формата может содержать следующие коды:

    aВключено обозначение "am" или "pm"
    AВключено обозначение "AM" или "PM"
    dДень месяца (01-31)
    DСокращенное название дня недели (три буквы)
    FПолное название месяца
    gЧасы (12-часовой формат без ведущих нулей)
    GЧасы (24-часовой формат без ведущих нулей)
    hЧасы (12-часовой формат)
    HЧасы (24-часовой формат)
    iМинуты (00-59)
    jДень месяца без ведущих нулей (1-31)
    lПолное название дня недели
    LПризнак високосного года (0 или 1)
    mМесяц (01-12)
    MСокращенное название месяца (три буквы)
    nМесяц (1-12)
    sСекунды (00-59)
    tКоличество дней в данном месяце (от 28 до 31)
    UАбсолютное время
    wНомер дня недели (0 - воскресенье, 6 - суббота)
    yГод (два разряда)
    YГод (четыре разряда)
    zДень года (0-365)
    ZСмещение часового пояса в секундах (от -43200 до 43200)

    Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку. Если в строку формата нужно добавить символы, которые сами по себе являются кодами формата, то перед ними надо поставить обратную косую черту "\". Символы, которые становятся кодами формата при добавлении к ним обратной косой, нужно предварять двумя косыми. Например, если необходимо добавить в строку "n", то надо ввести "\\n", поскольку "\n" является символом новой строки.

    Пример 2

    <html>
    <head>
    <title>Использование date()</title>
    </head>
    <body>
    <?php
    echo date( "Сегодня d.m.y H:i" );
    ?>
    </body>
    </html>
    
    РЕЗУЛЬТАТ ПРИМЕРА 2:
    Сегодня: 10.11.05 13:03

  • mktime( ) - возвращает абсолютное время, которое затем можно использовать с функциями date() или getdate(). Принимает до шести целочисленных аргументов в следующем порядке:

    часы
    минуты
    секунды
    месяц
    день месяца
    год

    Пример 3

    <html>
    <head>
    <title>Использование mktime()</title>
    </head>
    <body>
    <?php
    echo date( "j of F Y, \a\\t g.i a, l", mktime( 13, 30, 0, 1, 22, 1971 ) );
    ?>
    </body>
    </html>
    
    РЕЗУЛЬТАТ ПРИМЕРА 3:
    22 of January 1971, at 1.30 pm, Friday

  • checkdate( ) - проверка правильности даты. Аргументы: месяц, день, год. Возвращает true, если дата правильная, т.е.
    месяц - целое число от 1 до 12;
    день - целое число, не превышающее общего количества дней в данном месяце. При этом високосные годы обрабатываются корректно;
    год - целое число от 1 до 32767.

    Например:

    if ( !checkdate( $month, 1, $year ) )
      {
      $d = getdate();
      $month = $d[mon];
      $year = $d[year];
      }
    

    Внимание! Дата может находиться в допустимом диапазоне, но остальные функции работы с датами не примут это значение. Так, нельзя использовать mktime() для годов до 1902, а также следует использовать ее осторожно для годов до 1970.

  • strftime( ) - формирование локальной даты и времени. Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. При этом названия месяцев и дней недели извлекается из локали, выбранной с помощью функции setlocate( ) Строка формата может содержать следующие коды:

    %aСокращенное название дня недели
    %AПолное название дня недели
    %bСокращенное название месяца
    %BПолное название месяца
    %cПредпочтительный формат даты и времени
    %CНомер века
    %dДень месяца (1-31)
    %DТо же, что и %m/%d/%y
    %eМесяц (1-12)
    %hТо же, что и %b
    %HЧасы (24-часовой формат)
    %IЧасы (12-часовой формат)
    %jДень года (0-365)
    %mМесяц (1-12)
    %MМинуты
    %nСимвол новой строки
    %pВключено обозначение "am" или "pm"
    %rВремя с использованием a.m./p.m.-нотации
    %RВремя в 24-часовом формате
    %SСекунды (00-59)
    %tСимвол табуляции
    %TТо же, что и %H:%M:%S
    %uНомер дня недели (1 - понедельник, 7 - воскресенье)
    %UНомер недели. Отсчет начинается с первого воскресенья года
    %VНомер недели по ISO 8601:1988. Первая неделя должна иметь не менее четырех дней, а понедельник считается первым днем
    %WНомер недели. Отсчет начинается с первого понедельника года
    %wНомер дня недели (0 - воскресенье, 6 - суббота)
    %xПредпочтительный формат даты без времени
    %XПредпочтительный формат времени без даты
    %yГод (два разряда)
    %YГод (четыре разряда)
    %ZЧасовой пояс (имя или сокращение)
    %%Символ "%"

    Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку.

    Пример 4

    <html>
    <head>
    <title>Использование strftime()</title>
    </head>
    <body>
    <?php
    echo strftime("%A %d %B %Y %H:%M<br>");
    error_reporting(E_ALL & ~E_WARNING);
    setlocale('LC_ALL','');
    echo strftime("Сегодня %A %d %B %Y %X<br>");
    echo strftime("%Z<br>");
    ?>
    </body>
    </html>
    
    РЕЗУЛЬТАТ ПРИМЕРА 4:
    Tuesday 15 November 2005 13:11 Сегодня вторник 15 Ноябрь 2005 13:11:14 Московское время (зима)

Еще примеры:

date("l dS of F Y h:i:s A") :
Tuesday 24th 2017f January 2017 12:19:02 PM

date("Сегодня d.m.Y") :
Сегодня 24.01.2017

date("Этот файл датирован d.m.Y", filectime(__FILE__)) :
Этот файл датирован 03.02.2016

// Активизируем текущую локаль (иначе дата будет на английском).
setlocale(LC_ALL, '');
// Выводим 2 предложения.
echo strftime("%B %Y года, %d число.
	Был %A, часы показывали %H:%M.");
January 2017 года, 24 число. Был Tuesday, часы показывали 12:19.

Вчерашний день:

$time = strtotime("-1 day");
$fecha = date("Y-m-d", $time);
2017-01-23

Найти следующий рабочий день:

echo "Следующий рабочий день:".
    date("d.m.Y",(intval(date("w")==0 ?
        strtotime("next day") :
            (intval(date("w")==6 ?
                strtotime("+2 day") : strtotime("now") )))));
Следующий рабочий день:24.01.2017


Ещё примеры работы с датой и временем на PHP

все функции PHP для работы с датой и временем



.

Популярное:


Содержание:


Новое за неделю



Сейчас на сайте: 2794