Date d m y

Функция time, формат timestamp

Функция time возвращает разницу в секундах между 1-го января 1970 года и текущим моментом времени. Такое представление даты называется форматом timestamp.

Зачем нужен timestamp?

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

К примеру, у меня есть timestamp за 1-го января текущего года и timestamp за текущий момент времени. Я отниму один от другого и получу разницу между этими моментами в секундах. Поделю эту разницу на 60 и получу разницу в минутах (так как в минуте 60 секунд). Поделю еще на 60 — и получу разницу в часах. И так далее.

С помощью функции time мы можем получить только текущий момент времени. Чтобы получить timestamp за любую дату следует использовать функцию mktime:

Функция mktime

Функция mktime работает аналогично функции time, но, в отличие от нее, принимает параметры: mktime(час, минута, секунда, месяц, день, год) (обратите внимание на то, что месяц и день переставлены местами). Посмотрите примеры работы:


Параметры можно опускать с конца. Если мы не напишем год (последний параметр) — то автоматически возьмется текущий год, если не напишем еще и день (предпоследний параметр) — то возьмется текущий день и текущий год. И так далее:

Решим типичную задачу на time и mktime. Пусть нам нужно найти разницу в секундах между текущим моментом времени и полуднем (12 часов, 0 минут, 0 секунд) 1-го февраля (февраль — это месяц номер 2) 2000 года:

Полученная разница в секундах будет выглядеть так: 599083206 (обновите страницу и это число поменяется).

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

Функция date

Функция date выводит текущие дату и время в заданном формате.

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

Команды (заглавные буквы отличаются от обычных, обратите внимание!):

  • U – количество секунд, прошедших с 1 января 1970 года (то есть timestamp).

  • z – номер дня от начала года.
  • Y – год, 4 цифры.
  • y — год, две цифры.
  • m – номер месяца (с нулем спереди).
  • n – номер месяца без нуля впереди.
  • d – номер дня в месяце, всегда две цифры (то есть первая может быть нулем).
  • j – номер дня в месяце без предваряющего нуля.
  • w – день недели (0 — воскресенье, 1 — понедельник и т.д.).
  • h – часы в 12-часовом формате.
  • H – часы в 24-часовом формате.
  • i – минуты.
  • s – секунды.
  • L – 1, если високосный год, 0, если не високосный.
  • W – порядковый номер недели года.
  • t – количество дней в указанном месяце.

Примеры работы с date:

Второй параметр функции date

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

Этим можно воспользоваться, чтобы узнать номер дня недели за определенную дату — просто передадим ее вторым параметром с помощью функции mktime, а первым параметром поставим управляющий символ ‘w’:

Функция strtotime


Следующая полезная функция, которую мы разберем, называется strtotime.

Функция strtotime — это аналог функции mktime (тоже возвращает timestamp), только в отличие от нее принимает дату в более свободном формате.

К примеру, я могу передать ей строку ‘2025-12-31’ и функция сама разберет, где тут год, где месяц, а где день, и вернет эту дату в формате timestamp.

Что можно делать еще: можно написать так — strtotime(‘now’) — и мы получим текущий момент времени, или так — strtotime(‘next Monday’) — и мы получим следующий понедельник (Monday по-английски ‘понедельник’).

Все форматы можно посмотреть тут.

Примеры работы:

Следующий код вернет дату предыдущего понедельника:

Как добавить или отнять дату

Чтобы отнять или прибавить к дате определенный промежуток времени, следует пользоваться комбинацией из трех функций: date_create — она подготавливает дату к работе (дата должна быть в формате год-месяц-день) создавая так называемый объект дата, с которым производятся дальнейшие манипуляции, date_modify — она прибавляет или отнимает, date_format — она выводит получившуюся дату в заданном формате. Чтобы вникнуть в работу с этими функциями изучите примеры ниже.

Пример 1

Давайте создадим объект с датой за 2025 год, 12 месяц, 31 день, затем прибавим к ней 1 день и выведем в формате ‘день.месяц.год’


Пример 2

Давайте создадим объект с датой за 2025 год, 12 месяц, 31 день, затем прибавим к ней 3 дня и выведем в формате ‘день.месяц.год’

Пример 3

Давайте создадим объект с датой за 2025 год, 12 месяц, 31 день, затем прибавим к ней 3 дня и 1 месяц и выведем в формате ‘день.месяц.год’

Пример 4

Давайте создадим объект с датой за 2025 год, 1 месяц, 1 день, затем отнимем от нее 1 день и выведем в формате ‘день.месяц.год’

code.mu

Пример 4. Форматирование с использованием date()

<?php
// Предположим, что текущая дата March 10th, 2001, 5:16:18 pm

$today date("F j, Y, g:i a");         &.
sp;      
// 03.10.01
$today date("j, n, Y");                       // 10, 3, 2001
$today date("Ymd");                           $today date('it is the jS day.');   // It is the 10th day.
$today date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
$today date(.
                    
// 17:16:17
?>

www.php.su

<?php
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$today date("F j, Y, g:i a");    .
bsp;           
// 03.10.01
$today date("j, n, Y");                       // 10, 3, 2001
$today date("Ymd");                          .
/>
$today date('it is the jS day.');   // it is the 10th day.
$today date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today date<.
00">);                         
// 17:16:18
$today date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
?>

php.net

DATE

НАЗВАНИЕ
date — выдача и установка даты и времени

СИНТАКСИС

   date [ммддччмм[гг]] [+формат]  

ОПИСАНИЕ
Если аргументы команды date не указаны, или аргумент начинается со знака +, выводятся текущие дата и время; в противном случае выполняется установка даты и времени. Первые мм — это номер месяца; дд — номер дня в месяце; чч — номер часа (по 24-часовой шкале); вторые мм — номер минуты; гг — две последние цифры номера года. Например, команда

   date 10080045  

устанавливает дату на 8 октября, 0 часов 45 минут. Если год не указан, подразумевается текущий год. Система UNIX использует всемирное время. Команда date принимает во внимание часовой пояс и поправку на летнее время (в стандартах США) и выполняет соответствующие преобразования. Менять дату может только суперпользователь. Смотреть — каждый пользователь.

Если аргумент начинается со знака +, форматом вывода даты и времени управляет пользователь. Все поля вывода имеют фиксированный размер (дополняются, если нужно, нулями). Каждый описатель поля начинается с % и замещается при выводе соответствующим значением. Сам символ % кодируется с помощью пары %%. Все остальные символы копируются на вывод без изменений. Признаком конца формата служит перевод строки.

Описатели полей:

n вставить символ перевода строки
t вставить символ табуляции
m месяц года — от 01 до 12
d день месяца — от 01 до 31
y 2 цифры года — от 00 до 99
D дата в виде мм/дд/гг
H час — от 00 до 23
M минуты — от 00 до 59
S секунды — от 00 до 59
T время в виде чч:мм:сс
j день года — от 001 до 366
w день недели — воскресенье = 0
a сокращение дня недели — от Sun до Sat
h сокращение названия месяца — от Jan до Dec
r время по 12-часовой шкале

ПРИМЕР
Команда

   date '+DATE: %m/%d/%y%nTIME: %H:%M:%S'  

выдаст информацию следующего вида:

   DATE: 08/18/88   TIME: 14:45:05  

ДИАГНОСТИКА

  No permission Вы не являетесь суперпользователем и пытаетесь изменить дату.  Bad conwersion Устанавливаемая дата синтаксически неверна.  Bad format character Недопустимый описатель поля.  

rus-linux.net

<?php
// Предположим, что текущей датой является 10 марта 2001, 5:16:18 вечера,
// и мы находимся во временной зоне Mountain Standard Time (MST)

$today date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today date("m.d.y");                         // 03.10.01
$today date("j, n, Y");                       // 10, 3, 2001
$today date("Ymd");                           // 20010310
$today date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today date('it is the jS day.');   // it is the 10th day.
$today date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today date('H:m:s m is month');     // 17:03:18 m is month
$today date("H:i:s");                         // 17:16:18
$today date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (формат MySQL DATETIME)
?>

php.ru

Очевидно, что очень часто программистам приходится работать с датой и временем. Самый простой пример — это дата и время отправки сообщения на форуме. И, разумеется, такие вещи могут реализоваться на PHP, тем более, что возможностей по работе с датой и временем в PHP очень много.

Базовая функция, связанная с датой и временем в PHP, — это функция time(), которая возвращает количество секунд, прошедших с полуночи 01.01.1970 (зарождение эпохи Unix):

<?php
  echo time();
?>

Запустив данный скрипт, Вы узнаете, сколько секунд прошло с полуночи 01.01.1970 до момента вызова функции time() в Вашем скрипте.

Разумеется, помимо этой базовой функции, которая присутствует во всех языках программирования, где можно работать с датой и временем (по крайней мере, среди тех, которые я знаю), существует и другая функция, которая называется getdate():

<?php
  $datetime = getdate();
  foreach ($datetime as $k=>$v)
    echo "$k - $v<br />";
?>

Запустив данный скрипт, Вы увидите набор ключей в массиве и их соответствующих значений (заодно, повторили конструкцию foreach). Думаю, что теперь для Вас не составит труда узнать любые данные, связанные с датой и временем. Например, чтобы вывести текущее время, необходимо написать следующий код:

<?php
  $datetime = getdate();
  echo $datetime['hours'].":".$datetime['minutes'].":".$datetime['seconds'];
?>

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

<?php
  $datetime = getdate(152353232);
  echo $datetime['year'];
?>

В результате, Вы увидите 1974-ый год.

Также существует функция date(). Я рекомендую посмотреть описание по ней в справочнике, так как данная функция принимает весьма сложный параметр, который задаёт формат вывода даты. Элементов форматирования чуть больше 30-ти штук. И в примере ниже я приведу несколько из них, а остальные посмотрите в справочнике, потому что их запоминать не нужно, но ознакомиться с ними крайне желательно. А принцип их использования знать обязательно, и о нём следующий пример:

<?php
  echo date("Сегодня d.m.Y H:i:s");
?>

В результате, Вы увидите что-то наподобие этого: «Сегодня 15.11.2010 21:44:24«. Также у функции date() есть ещё второй необязательный параметр, задающий timestamp, как раз та величина, равная количеству секунд, прошедших с полуночи 01.01.1970. Пример использования второго параметра:

<?php
  echo date("Когда-то было d.m.Y H:i:s", 5393235329);
?>

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

<?php
  echo gmdate("Сейчас на Гринвиче D M j H:i:s T Y")
?>

В результате, Вы увидите примерно следующее: «Mon Nov 15 18:52:45 GMT 2010«. Разумеется, у Вас будет выведена уже другая дата, но в аналогичном формате. Также я настоятельно рекомендую залезть в справочник и просто ознакомиться с другими элементами даты и времени в PHP (я привёл только треть), так как функции date() и gmdate() — это самый простой и самый быстрый способ получить дату и время в практически любом формате.

myrusakov.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector