Php до начала осталось

PHP | Дата и время

В этом уроке рассмотрм, как на практике использовать функции PHP по получению даты и времени, а также рассмотрим способы вывода и форматирования даты и времени. Функции PHP, обрабатывающие дату и время, позволяют получать дату и время с того сервера, на котором выполняется сценарий. Также эти функции позволяют нам редактировать и форматировать полученные временные значения перед их отображением (выводом) на экран.

Функция PHP date()

Функция date() выводит текущие дату и время в заданном формате. Также функция может конвертировать формат отметки времени (временная метка, метка времени или timestamp) в удобочитаемый формат.

Синтаксис

Параметры функции date():

format Обязательный. Задает формат метки времени timestamp Необязательный. Задает отметку времени. По умолчанию текущая дата и время

Функция date() возвращает строку, которая отформатирована в соответствии с указанным шаблоном format . Параметр timestamp задает метку времени. Если timestamp не задан, тогда используется текущее системное время.

Примечание: Отметка времени — это последовательность символов, обозначающая дату и / или время, когда произошло определенное событие.

Обязательный параметр format функции date() указывает, как форматировать дату (или время). Формат задается управляющими командами (латиницей), при этом можно вставлять любые разделители между ними (дефисы, двоеточие и так далее).

Ниже представлена таблица с расшифровкой некоторых символов в строке format :

Читайте также:  Dagger 2 java это
Символ в строке format Описание Пример возвращаемого значения
День
d День месяца с 2-мя цифрами от 01 до 31
D День недели в текстовом формате, 3 символа от Mon до Sun
z Порядковый номер дня в году (начиная с 0) От 0 до 365
Месяц
F Полное название месяца, например, January или March от January до December
m Порядковый номер месяца, 2 цифры от 01 до 12
M Сокращенное название месяца, 3 символа от Jan до Dec
Год
Y Порядковый номер года, 4 цифры Примеры: 1999, 2019
y Порядковый номер года, 2 цифры Примеры: 99, 19
Время
a Ante meridiem (лат. «до полудня») или Post meridiem (лат. «после полудня») в нижнем регистре am или pm
A Ante meridiem или Post meridiem в верхнем регистре AM или PM
g Часы в 12-часовом формате от 1 до 12
G Часы в 24-часовом формате от 0 до 23
h Часы в 12-часовом формате от 01 до 12
H Часы в 24-часовом формате, 2 цифры от 00 до 23
i Минуты, 2 цифры от 00 до 59
s Секунды, 2 цифры от 00 до 59

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

Пример

 echo "Отображение текущей даты: " . date('d-m-Y') . "
";
echo "Отображение текущего времени: " . date('H:i:s') . "
";
echo "Отображение текущей даты и времени: " . date('d-m-Y H:i:s') . "
";
echo "Отображение текущей даты и времени в длинном формате: " . date('d F Y, D - g:i:s A');
?>

Как всегда в футере выводить текущий год?

Используйте функцию date() для автоматического обновления года в футере вашего веб-сайта:

Пример

 Copyright © 2014- Все права защищены. 

Результат выполнения кода:

Примечание: Обратите внимание, что функция PHP date() вернет текущую дату / время сервера!

Определите свой часовой пояс

Если сервер, на котором расположен ваш сайт, находится в другой стране или настроен для другого часового пояса, то текущее время, возвращаемое функцией date(), будет отличаться от реального времени вашего часового пояса.

Итак, если вам нужно, чтобы время было правильным для вашего региона, вы можете установить часовой пояс, который хотите использовать.

Функция date_default_timezone_set() устанавливает временную зону по умолчанию для всех функций даты и времени в скрипте.

Параметр timezone_identifier — это идентификатор временной зоны.

Функция date_default_timezone_set() устанавливает часовой пояс, который по умолчанию используется всеми дата/время функциями в сценарии. Чтобы изменить значение часового пояса для вашего веб-сайта, достаточно в начале скрипта задать функцию date_default_timezone_set() , параметром которой будет служить название часового пояса.

В приведенном ниже примере для часового пояса устанавливается значение ‘Europe/Moscow’, а затем выводится текущее время в указанном формате:

Пример

 echo "Текущее время в Москве " . date("h:i:sa"); 
date_default_timezone_set('Europe/Kiev');
echo "Текущее время в Киеве " . date("h:i:sa");
?>

Функция PHP mktime()

Необязательный параметр timestamp функции date() указывает временную метку. Если она не указано, будут использоваться текущая дата и время (как в примерах выше).

Но если вам нужно получить метку времени в прошлом или будущем, то сделать это можно с помощью функции mktime() . Вам нужно указать нужную дату, и она возвращается с меткой времени Unix. Метка времени Unix содержит количество секунд между эпохой Unix (1 января 1970 г., 00:00:00 GMT) и указанным временем.

Синтаксис данной функции следующий:

Здесь используются следующие данные:

hour Количество часов, прошедших с начала дня, указанного параметрами month, day и year. minute Количество минут, прошедших от начала часа, указанного параметром hour. second Количество секунд, прошедших от начала минуты, указанной параметром minute. month Количество месяцев, прошедших с конца предыдущего года. day Количество дней, прошедших с конца предыдущего месяца. year Номер года, может быть указан двумя или четырьмя цифрами.

Аргументы могут быть опущены в порядке справа налево. В этом случае их значения по умолчанию равны соответствующим компонентам локальной даты/времени.

Функцию mktime() удобно использовать для выполнения арифметических операций с датами, так как она вычисляет верные значения при некорректных аргументах. Например, в следующем примере каждая строка выведет «Jan-01-1921»:

Источник

PHP – сколько дней/часов/минут/секунд осталось до даты

Скрипт на пхп, который выводит оставшееся время до введенной даты.

Как на PHP рассчитать время до указанного события

/** * Счетчик обратного отсчета * * @param mixed $date * @return */ function downcounter($date) < $check_time = strtotime($date) - time(); if($check_time $days = floor($check_time/86400); $hours = floor(($check_time%86400)/3600); $minutes = floor(($check_time%3600)/60); $seconds = $check_time%60; $str = ''; if($days > 0) $str .= declension($days,array('день','дня','дней')).' '; if($hours > 0) $str .= declension($hours,array('час','часа','часов')).' '; if($minutes > 0) $str .= declension($minutes,array('минута','минуты','минут')).' '; if($seconds > 0) $str .= declension($seconds,array('секунда','секунды','секунд')); return $str; > /** * Функция склонения слов * * @param mixed $digit * @param mixed $expr * @param bool $onlyword * @return */ function declension($digit,$expr,$onlyword=false)< if(!is_array($expr)) $expr = array_filter(explode(' ', $expr)); if(empty($expr[2])) $expr[2]=$expr[1]; $i=preg_replace('/[^0-9]+/s','',$digit)%100; if($onlyword) $digit=''; if($i>=5 && $i<=20) $res=$digit.' '.$expr[2]; else < $i%=10; if($i==1) $res=$digit.' '.$expr[0]; elseif($i>=2 && $i <=4) $res=$digit.' '.$expr[1]; else $res=$digit.' '.$expr[2]; >return trim($res); >
  • downcounter() – функция счетчика обратного отсчета
  • declension() – вспомогательная функция, для склонения слов

Вводим дату события, которая обязательно должна быть больше текущей. Применять функцию подсчета даты можно так:

Как вы понимаете, вешать скрипт, который отправляет ajax запрос на сервер каждую секунду, не очень хорошо :). В следующих статьях вы узнаете как при помощи js показывать актуальное время.

Источник

Счётчик обратного отчёта

Если на сайте анонсируется какая-либо акция, то сайт значительно выигрывает, если на нём есть блок, показывающий, сколько времени осталось до её начала — счётчик обратного отсчёта. Также счётчик обратного отсчёта может показывать, сколько времени осталось до окончания акции, если акция уже действует.

Разберём пример, когда на сайте организуются конкурсы с участием посетителей сайта. У каждого конкурса в админке устанавливается дата окончания. Счётчик обратного отсчёта должен показывать, сколько дней, часов и минут осталось до окончания.

1. Сначала позаботимся о правильном склонения слов перед числами. Например, если оставшееся время — 45 дней и т.д., то счётчик на сайте и должен выдавать именно «дней», а не «дня» или «день». А если остался 21 день и т.д., то нужно писать именно «день». То же самое с часами и минутами. За это отвечает пользовательская функция correctForm. Её код приведён ниже.

//функция склонения слов перед числами

function correctForm($number, $suffix)

2. Далее нам нужно получить дату окончания конкурса, отображаемого на текущей странице. Для этого пишем запрос к базе данных, где end_ — дата в формате числа и времени. Присваиваем её значение переменной $real_end. Затем получаем текущую дату и время функцией PHP date.

$resultT= mysql_query («select end_ FROM competitions WHERE cid=’$cid'») or die (mysql_error());

$myrowT= mysql_fetch_array ($resultT);

3. И, собственно, сам счётчик обратного отсчёта. Два раза используем функцию PHP strtotime, которая преобразует текстовое представление даты на английском языке в метку времени Unix для текущей даты и даты окончания конкурса. Получаем разницу в секундах между датой окончания и текущей датой. Далее, используя функцию PHP floor, возвращающую ближайшее меньшее целое, вычисляем оставшиеся дни, часы и минуты. Вычисления основаны на том, что в минуте 60 секунд, в 1 часе 3600 секунд, в 1 дне 86400 секунд.

//вычисление оставшихся дней, часов и минут

$future_date = strtotime ($real_end);

$difference_days = $future_date — $now_date;

$days = floor ($difference_days/86400);

$difference_hours = $difference_days % 86400;

$hours = floor ($difference_hours/3600);

$difference_min = $difference_hours % 3600;

$min = floor ($difference_min/60);

4. Теперь применяем пользовательскую функцию correctForm склонения слов перед числами.

$array1 = array («день», «дня», «дней»);

$word1 = correctForm($days, $array1);

$array2 = array («час», «часа», «часов»);

$word2 = correctForm($hours, $array2);

$array3 = array («минута», «минуты», «минут»);

$word3 = correctForm($min, $array3);

printf (‘

%s %s %s %s %s %s

до закрытия конкурса

‘, $days,$word1,$hours,$word2,$min,$word3);

5. И, наконец, полный код блока, реализующего счётчик обратного отсчёта. Как в случае с конкурсами, он точно так же может производит обратный отсчёт для акций на те или иные товары на сайте-каталоге или любой другой отсчёт времени, оставшегося до какого-либо «часа Ч».

//функция склонения слов перед числами

function correctForm($number, $suffix)

$resultT= mysql_query («select end_ FROM competitions WHERE cid=’$cid'») or die (mysql_error());

$myrowT= mysql_fetch_array ($resultT);

//вычисление оставшихся дней, часов и минут

$future_date = strtotime ($real_end);

$difference_days = $future_date — $now_date;

$days = floor ($difference_days/86400);

$difference_hours = $difference_days % 86400;

$hours = floor ($difference_hours/3600);

$difference_min = $difference_hours % 3600;

$min = floor ($difference_min/60);

$array1 = array («день», «дня», «дней»);

$word1 = correctForm($days, $array1);

$array2 = array («час», «часа», «часов»);

$word2 = correctForm($hours, $array2);

$array3 = array («минута», «минуты», «минут»);

$word3 = correctForm($min, $array3);

printf (‘

%s %s %s %s %s %s

до закрытия конкурса

‘, $days,$word1,$hours,$word2,$min,$word3);

Источник

Оцените статью