Дата и время js: все, что нужно знать
Содержание:
- Описание
- Linux Date Command with Examples
- Vac в кс го и все что вам нужно о нем знать! Использование Date
- Пользовательское форматирование даты
- Переопределить часовой пояс
- Конвертер эпох
- Использование с другими командами
- Показать время последнего изменения файла
- Установите системное время и дату
- Format String
- Преобразование формата даты и времени в PHP
- Примеры использования date
- Внесение значений даты и времени в столбцы таблицы
- Поддерживаемые форматы строковых литералов для типа данных date
- Summary
- Описание time и mktime
- Создание даты – 4 примера
- Разбор строки, Date.parse
- Преобразование даты в строку и её форматирование
- PHP Date/Time Functions
- PHP 5 предопределенные константы даты/времени
Описание
date
Возвращает время, отформатированное в соответствии с аргументом
format, используя метку времени, заданную
аргументом timestamp или текущее системное
время, если timestamp не задан.
Другими словами, timestamp является
необязательным и по умолчанию равен значению, возвращаемому функцией
time().
Таблица 1. В параметре format распознаются
следующие символы
Символ в строке format | Описание | Пример возвращаемого значения |
---|---|---|
a | Ante meridiem или Post meridiem в нижнем регистре | am или pm |
A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM |
B | Время в стадарте Swatch Internet | От 000 до 999 |
c | Дата в формате ISO 8601 (добавлено в PHP 5) | 2004-02-12T15:19:21+00:00 |
d | День месяца, 2 цифры с ведущими нулями | от 01 до 31 |
D | Сокращенное наименование дня недели, 3 символа | от Mon до Sun |
F | Полное наименование месяца, например January или March | от January до December |
g | Часы в 12-часовом формате без ведущих нулей | От 1 до 12 |
G | Часы в 24-часовом формате без ведущих нулей | От до 23 |
h | Часы в 12-часовом формате с ведущими нулями | От 01 до 12 |
H | Часы в 24-часовом формате с ведущими нулями | От 00 до 23 |
i | Минуты с ведущими нулями | 00 to 59 |
I (заглавная i) | Признак летнего времени | 1, если дата соответствует летнему времени, иначе otherwise. |
j | День месяца без ведущих нулей | От 1 до 31 |
l (строчная ‘L’) | Полное наименование дня недели | От Sunday до Saturday |
L | Признак високосного года | 1, если год високосный, иначе . |
m | Порядковый номер месяца с ведущими нулями | От 01 до 12 |
M | Сокращенное наименование месяца, 3 символа | От Jan до Dec |
n | Порядковый номер месяца без ведущих нулей | От 1 до 12 |
O | Разница с временем по Гринвичу в часах | Например: +0200 |
r | Дата в формате RFC 2822 | Например: Thu, 21 Dec 2000 16:01:07 +0200 |
s | Секунды с ведущими нулями | От 00 до 59 |
S | Английский суффикс порядкового числительного дня месяца, 2 символа |
st, nd, rd или th. Применяется совместно с j |
t | Количество дней в месяце | От 28 до 31 |
T | Временная зона на сервере | Примеры: EST, MDT … |
U |
Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) |
См. также time() |
w | Порядковый номер дня недели | От (воскресенье) до 6 (суббота) |
W | Порядковый номер недели года по ISO-8601, первый день недели — понедельник (добавлено в PHP 4.1.0) | Например: 42 (42-я неделя года) |
Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2003 |
y | Номер года, 2 цифры | Примеры: 99, 03 |
z | Порядковый номер дня в году (нумерация с 0) | От до 365 |
Z |
Смещение временной зоны в секундах. Для временных зон западнее UTC это отрицательное число, восточнее UTC — положительное. |
От -43200 до 43200 |
Любые другие символы, встреченные в строке format,
будут выведены в результирующую строку без изменений.
Z всегда возвращает при
использовании gmdate().
Пример 1. Примеры использования функции date() |
Избежать распознавания символа как форматирующего можно, если экранировать
этот символ с помощью \ Если в сочетании с
\ символ являееся специальным (например,
\t), следует добавлять еще один
\.
Пример 2. Экранирование символов в функции date() |
Функции date() и
mktime() для вывода прошедших и будущих дат.
Пример 3. date() и mktime() example
|
Приведем еще несколько примеров использования функции
date(). Помните, что следует экранировать все
символы, которые вы хотите видеть в результате работы функции без
изменений. Это относится и к символам, которые в текущей версии PHP
не распознаются как специальные, так как этим символам может быть
назначено значение в следующих версиях.
Используйте одинарные кавычки для предотвращения преобразования
\n в перевод строки.
Пример 4. Форматирование с использованием date()
|
Для форматирования дат на других языках используйте функции
setlocale() и strftime().
См. также описание функций getlastmod(), gmdate(),
mktime(), strftime()
и time().
Linux Date Command with Examples
10 Мая 2020
|
Терминал
В этом руководстве мы рассмотрим основы date команды.
Команда отображает или устанавливает системную дату. Чаще всего он используется для печати даты и времени в разных форматах и для расчета будущих и прошлых дат.
Использование Date
Синтаксис команды следующий:
Чтобы отобразить текущее системное время и дату, используя форматирование по умолчанию, вызовите команду без каких-либо параметров и аргументов:
Выходные данные включают день недели, месяц, день месяца, время, часовой пояс и год:
Вывод команды может быть отформатирован с помощью последовательности символов управления форматом, перед которой стоит знак. Элементы управления форматом начинаются с символа и заменяются их значениями.
Символ будет заменен на год, месяц и день месяца:
Вот еще один пример:
Ниже приведен небольшой список некоторых наиболее распространенных символов форматирования:
- — Сокращенное название дня недели (например, понедельник)
- — Сокращенное полное название дня недели (например, понедельник)
- — Сокращенное название месяца (например, январь).
- — сокращенное длинное название месяца (например, январь)
- — день месяца (например, 01)
- — час (00..23)
- — час (01.12.12)
- — День года (001..366)
- — Месяц (01.12.12)
- — Минута (00..59)
- — Второй (00 .. 60)
- — день недели (1..7)
- — Полный год (например, 2019)
Чтобы получить полный список всех параметров форматирования, запустите или в своем терминале.
Пользовательское форматирование даты
Опция позволяет работать на дату конкретного. Вы можете указать дату в виде удобочитаемой строки даты, как показано ниже:
Использование пользовательского форматирования:
Строка даты принимает значения, такие как «завтра», «пятница», «последняя пятница», «следующая пятница», «следующий месяц», «следующая неделя» .. и т. Д.
Вы также можете использовать параметр строки даты, чтобы показать местное время для разных часовых поясов. Например, чтобы показать местное время 6:30 утра следующего понедельника на восточном побережье Австралии, введите:
Переопределить часовой пояс
Команда возвращает дату в системном часовом поясе по умолчанию . Чтобы использовать другой часовой пояс, установите переменную среды в желаемый часовой пояс.
Например, чтобы показать время в Мельбурне, введите:
Чтобы получить список всех доступных часовых поясов , вы можете либо перечислить файлы в каталоге, либо использовать команду.
Конвертер эпох
Команда может быть использована в качестве преобразователя Epoch. Время, или метки времени Unix, — это количество секунд, прошедших с 1 января 1970 года в 00:00:00 UTC.
Чтобы напечатать количество секунд от эпохи до текущего дня, вызовите с контролем формата:
Чтобы преобразовать секунды с начала эпохи в дату, установите секунды в виде строки даты с префиксом :
Использование с другими командами
Команда чаще всего используется для создания имен файлов, которые содержат текущее время и дату.
Команда ниже создаст файл резервной копии Mysql в следующем формате
Вы также можете использовать команду в своих сценариях оболочки. В приведенном ниже примере мы присваиваем выход к переменной:
Показать время последнего изменения файла
Команда с параметром показывает время последнего изменения файла. Например:
Если вы хотите изменить временную метку файла, используйте команду .
Установите системное время и дату
Установка системного времени и даты вручную с помощью этой команды не рекомендуется, поскольку в большинстве дистрибутивов Linux системные часы синхронизируются с помощью служб или .
Однако, если вы хотите установить системные часы вручную, вы можете использовать эту опцию. Например, если вы хотите установить дату и время 17:30, 01 июня 2019 г., введите:
Команда Linux отображает или устанавливает системную дату и время.
Format String
There are certain characters with predefined meaning using which you can create a format string They are:
-
d − The day of the month (from 01 to 31)
-
D − A textual representation of a day (three letters)
-
j − The day of the month without leading zeros (1 to 31)
-
l (lowercase ‘L’) − A full textual representation of a day
-
N − The ISO-8601 numeric representation of a day (1 for Monday through 7 for Sunday)
-
S − The English ordinal suffix for the day of the month (2 characters st, nd, rd or th. Works well with j)
-
w − A numeric representation of the day (0 for Sunday through 6 for Saturday)
-
z − The day of the year (from 0 through 365)
-
W − The ISO-8601 week number of year (weeks starting on Monday)
-
F − A full textual representation of a month (January through December)
-
m − A numeric representation of a month (from 01 to 12)
-
M − A short textual representation of a month (three letters)
-
n − A numeric representation of a month, without leading zeros (1 to 12)
-
t − The number of days in the given month
-
L − Whether it’s a leap year (1 if it is a leap year, 0 otherwise)
-
o − The ISO-8601 year number
-
Y − A four digit representation of a year
-
y − A two digit representation of a year
-
a − Lowercase am or pm
-
A − Uppercase AM or PM
-
B − Swatch Internet time (000 to 999)
-
g − 12-hour format of an hour (1 to 12)
-
G − 24-hour format of an hour (0 to 23)
-
h − 12-hour format of an hour (01 to 12)
-
H − 24-hour format of an hour (00 to 23)
-
i − Minutes with leading zeros (00 to 59)
-
s − Seconds, with leading zeros (00 to 59)
-
e − The timezone identifier (Examples: UTC, Atlantic/Azores)
-
I (capital i) − Whether the date is in daylights savings time (1 if Daylight Savings Time, 0 otherwise)
-
O − Difference to Greenwich time (GMT) in hours (Example: +0100)
-
T − Timezone setting of the PHP machine (Examples: EST, MDT)
-
Z − Timezone offset in seconds. The offset west of UTC is negative, and the offset east of UTC is positive (-43200 to 43200)
-
c − The ISO-8601 date (e.g. 2004-02-12T15:19:21+00:00)
-
r − The RFC 2822 formatted date (e.g. Thu, 21 Dec 2000 16:01:07 +0200)
-
U − The seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
php_function_reference.htm
Previous Page
Print Page
Next Page
Преобразование формата даты и времени в PHP
Простейший механизм, позволяющий преобразовать числовое значение даты на более понятные значения, предоставляется функцией:
array getdate()
Она возвращает ассоциативный массив, содержащий информацию о дате. Если параметр timestamp не указан, будут возвращены сведения о текущем времени. Этот массив содержит следующие значения:
seconds | секунды (0-59) |
minutes | минуты (0-59) |
hours | часы (0-23) |
mday | день месяца (1-31) |
wday | день недели (0-6), начиная с воскресенья |
mon | месяц (1-12) |
year | год |
yday | день года (0-365) |
weekday | название дня недели (например, Monday) |
month | название месяца (например, January) |
количество секунд, прошедших с начала Эпохи Unix |
Полученный массив, позволяет вывести значения нужном виде:
$date = 1418372345; // исходное дата и время 12.12.2014 11:19:05 $date_mas = getdate($date); echo $date_mas . ' . ' . $date_mas . ' . ' . $date_mas; // 12.12.2014
Так же для преобразования формата даты и времени можно воспользоваться функцией:
string date(string $template )
Она предназначена для получения текущей даты unix timestamp в нужном формате. Строковый параметр $template определяет формат вывода. Параметром $unix_timestamp можно задать, с каким значением времени производится работа. Он необязательный, поэтому, если его не указать, будет использоваться текущая дата и время.
Формат задается следующими значениями:
a | «до» и «после» полудня: «am» или «pm» |
A | «до» и «после» полудня заглавными буквами: «AM» или «PM» |
d | день месяца 2 цифрами (если меньше 10, на первом месте ноль) (от 01 до 31) |
D | день недели 3 буквами. Например, «Mon» (понедельник) |
j | день месяца, 1-2 цифры без начальных нулей (от 1 до 31) |
F | название месяца. Например, «January» |
h | час, 12-часовой формат (от 01 до 12) |
H | час, 24-часовой формат (от 00 до 23) |
g | час, 12-часовой формат без нулей (от 1 до 12) |
G | час, 24-часовой формат без нулей (от 0 до 23) |
i | минуты (от 00 до 59) |
I (заглавная i) | 1, если действует переход на летнее время, иначе 0 |
L | 1, если год високосный, или 0 если не високосный |
B | время в формате Интернет-времени (альтернативной системы отсчета времени суток) (от 000 до 999) |
T | временная зона компьютера. Например, MDT |
l (строчная L) | день недели. Например, «Monday» |
m | месяц, две цифры с нулями (от 01 до 12) |
n | месяц, одна-две цифры без нулей (от 1 до 12) |
M | сокращенное наименование месяца. Например, «Jan» |
t | число дней в указанном месяце (от 28 до 31) |
s | секунды (от 0 до 59) |
S | англоязычный порядковый суффикс числа из двух букв («st», «nd», «rd» или «th») |
U | целое число секунд, прошедших с момента начала эпохи UNIX |
y | год, цифровой, 2 цифры (14) |
Y | год, цифровой, 4 цифры (2014) |
z | порядковое число дня в году (от 0 до 365) |
Z | смешение временной зоны в секундах (от -43200 до 43200) |
N | порядковый номер дня недели от 1 (понедельник) до 7 (воскресенье) в соответствии со стандартом ISO-8601, (добавлен в версии PHP 5.1.0) |
w | порядковый номер дня недели от 0 (воскресенье) до 6 (суббота) |
W | порядковый номер недели года в соответствии со стандартом ISO-8601; недели начинаются с понедельника (добавлено в версии PHP 4.1.0) |
o | номер года в соответствии со стандартом ISO-8601. Имеет то же значение, что и Y, кроме случая, когда номер недели ISO (W) принадлежит предыдущему или следующему году; тогда будет использован год этой недели. (добавлен в версии PHP 5.1.0) |
e | код шкалы временной зоны. Например: UTC, GMT, Atlantic/Azores (добавлен в версии PHP 5.1.0) |
O | разница с временем по Гринвичу, в часах. Например: +0200 |
P | разница с временем по Гринвичу с двоеточием между часами и минутами. Например: +02:00 (добавлено в версии PHP 5.1.3) |
c | дата в формате стандарта ISO 8601. Например, 2014-12-12T15:19:21+00:00 (добавлено в PHP 5) |
r | дата в формате » RFC 2822. Например: Thu, 21 Dec 2000 16:01:07 +0200 |
U | количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT) |
Как видно из списка, с помощью этой функции можно получить очень много полезных данных о дате. Например:
$date = 1418372345; // исходное дата и время 12.12.2014 11:19:05 echo date('d.m.Y', $date); // 12.12.2014 (дата) echo date('H:i:s', $date); // 11:19:05 (время) echo date('H:i', $date); // 11:19 (время) echo date('t', $date); // 31 (число дней в месяце) echo date('z', $date); // 345 (порядковый номер дня в году) echo date('l dS \of F Y h:i:s A', $date); // Friday 12th of December 2014 11:19:05 AM
Другие символы, входящие в шаблон, будут выведены в строке как есть. Если же потребуется ввести символ, который используется в функции как код формата, перед ними вставляется символ «\». Для значения «\n» (символ перехода на новую строку), следует указать «\\n». Таким образом, можно делать вывод целого сообщения, содержащего сведения о дате и времени:
echo date('Сегодня z-й день Y-го года', $date); // Сегодня 345-й день 2014-го года
Примеры использования date
Введем команду без параметров.
Будет отображена текущая дата и время в соответствии с настройками локали системы.
Команда date без параметров по умолчанию применяет маску %a %b %d %X %Z. Поскольку все форматы должны быть переданы как один параметр (из-за принципа обработки данных командным интерпретатором Bash), пробелы между ними необходимо экранировать обратным слэшем (\) или взять в кавычки.
Особое внимание следует уделить параметру -d (—date). Его функциональность не слишком очевидна, но при этом наиболее обширна
Пример 1. Вычисление даты по числу секунд, прошедших с 1 января 1970 года.
Пример 2. Вычисление даты и времени следующего понедельника при указании часового пояса Нью-Йорка в 03:00.
Обратите внимание: указывать название дня недели или месяца можно в любом регистре, в короткой или длинной форме. Параметры next и last обозначают следующий и прошедший, соответственно, ближайшие дни недели
Пример 3. Если текущий день месяца — последний, сформировать отчет о занятости дискового пространства корневого и домашнего каталога в файл report.
Такой скрипт можно использовать для автоматизации работы с помощью демона crontab или anacron.
Внесение значений даты и времени в столбцы таблицы
Рассмотрим, как вносятся значения date MySQL в таблицу. Чтобы продемонстрировать это, мы продолжим использовать таблицу orders, которую создали в начале статьи.
Мы начнем с добавления новой строки заказа. Значение поля order_no будет автоматически увеличиваться на 1, так что нам остается вставить значения order_item, дату создания заказа и дату доставки. Дата заказа — это время, в которое вставляется заказ, поэтому мы можем использовать функцию NOW(), чтобы внести в строку текущую дату и время.
Дата доставки — это период времени после даты заказа, которую мы можем вернуть, используя функцию MySQL DATE ADD(), которая принимает в качестве аргументов дату начала (в нашем случае NOW ()) и INTERVAL (в нашем случае 14 дней). Например:
INSERT INTO orders (order_item, order_date, order_delivery) VALUES ('iPhone 8Gb', NOW(), DATE_ADD(NOW(), INTERVAL 14 DAY));
Данный запрос создает заказ для указанного элемента с датой, временем выполнения заказа, и интервалом через две недели после этого в качестве даты доставки:
mysql> SELECT * FROM orders; +----------+------------+---------------------+----------------+ | order_no | order_item | order_date | order_delivery | +----------+------------+---------------------+----------------+ | 1 | iPhone 8Gb | 2007-10-23 11:37:55 | 2007-11-06 | +----------+------------+---------------------+----------------+ 1 row in set (0.00 sec)
Точно так же можно заказать товар с датой доставки через два месяца:
mysql> INSERT INTO orders (order_item, order_date, order_delivery) VALUES ('ipod Touch 4Gb', NOW(), DATE_ADD(NOW(), INTERVAL 2 MONTH)); Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM orders; +----------+----------------+---------------------+----------------+ | order_no | order_item | order_date | order_delivery | +----------+----------------+---------------------+----------------+ | 1 | iPhone 8Gb | 2007-10-23 11:37:55 | 2007-11-06 | | 2 | ipod Touch 4Gb | 2007-10-23 11:51:09 | 2007-12-23 | +----------+----------------+---------------------+----------------+ 2 rows in set (0.00 sec)
Поддерживаемые форматы строковых литералов для типа данных date
В приведенной ниже таблице перечислены допустимые форматы строковых литералов для типа данных date.
Числовой | Описание |
---|---|
mdy м/дд/гг м-дд-гг м.дд.гг мгд мм/гг/дд мм-гг/дд м.гг.дд дмг дд/м/гг дд-м-гг дд.м.гг дгм дд/гг/м дд-гг-м дд.гг.м гмд гг/м/дд гг-м-дд гг-м-дд | Сочетания м, дд и гг представляют в строке месяц, день и год, разделенные символом косой черты (/), дефисом (-) или точкой (.). Поддерживаются только двух- и четырехзначные форматы записи года. Для записи года рекомендуется всегда использовать четырехзначный формат. Чтобы указать целое число в промежутке от 0001 до 9999, представляющее пороговое значение года при преобразовании двухзначной записи в четырехзначную, необходимо использовать параметр конфигурации сервера two digit year cutoff.Примечание. Для Informatica значение ГГГГ ограничено диапазоном от 1582 до 9999. Если двузначное число, обозначающее год, меньше или равно двузначному числу из последних двух цифр порогового года, год относится к тому же столетию, что и пороговый год. Если двузначное число, обозначающее год, больше двузначного числа из последних двух цифр порогового года, год относится к столетию, которое предшествует столетию порогового года. Например, если пороговое значение года для двухзначной записи равно 2049, то год, обозначенный двумя цифрами 49, интерпретируется как 2049, а год, обозначенный двумя цифрами 50, интерпретируется как 1950. Формат даты по умолчанию определяется текущими настройками языковых стандартов. Формат даты можно изменить с помощью инструкций SET LANGUAGE и SET DATEFORMAT. Формат гдм не поддерживается для типа данных date. |
Алфавитный формат | Описание |
---|---|
мес гггг мес дд мес гггг мес гггг дд месгг дд гг мес гггг мес гггг мес гггг мес | Значение мес означает полное или сокращенное название месяца на текущем языке. Запятые являются необязательными, регистр букв не учитывается. Во избежание неоднозначности используйте четырехзначную запись года. Если не указано число месяца, подразумевается первое число месяца. |
ISO 8601 | Описание |
---|---|
ГГГГ-ММ-ДД ГГГГММДД | То же, что и стандарт SQL. Этот формат является единственным международным стандартом. |
Без разделителей | Описание |
---|---|
ггммдд гггг | Данные типа date могут быть определены с помощью четырех, шести или восьми цифр. Строка из шести или восьми цифр всегда интерпретируется как гмд. На месяц и день всегда должно приходиться по две цифры. Строка из четырех цифр воспринимается как значение года. |
ODBC | Описание |
---|---|
{ д ‘гггг-мм-дд’ } | Зависит от API-интерфейса ODBC. |
Формат W3C XML | Описание |
---|---|
гггг-мм-ддTZD | Введен для использования в XML и SOAP. TZD обозначает часовой пояс (в виде номера или смещения +чч:мм и -чч:мм): — «чч:мм» обозначает смещение часового пояса. чч — двузначное число от 0 до 14, представляющее количество часов в смещении часового пояса.— Обозначение «мм» состоит из двух цифр, представляющих дополнительное смещение часового пояса в минутах, и принимает значения от 0 до 59.— + (плюс) или – (минус) представляет собой обязательный знак смещения часового пояса. Данный знак указывает, добавляется или вычитается смещение часового пояса от времени в формате UTC, чтобы получить локальное время. Допустимый диапазон смещения часового пояса: от -14:00 до +14:00. |
Summary
- Date and time in JavaScript are represented with the Date object. We can’t create “only date” or “only time”: objects always carry both.
- Months are counted from zero (yes, January is a zero month).
- Days of week in are also counted from zero (that’s Sunday).
- auto-corrects itself when out-of-range components are set. Good for adding/subtracting days/months/hours.
- Dates can be subtracted, giving their difference in milliseconds. That’s because a becomes the timestamp when converted to a number.
- Use to get the current timestamp fast.
Note that unlike many other systems, timestamps in JavaScript are in milliseconds, not in seconds.
Sometimes we need more precise time measurements. JavaScript itself does not have a way to measure time in microseconds (1 millionth of a second), but most environments provide it. For instance, browser has performance.now() that gives the number of milliseconds from the start of page loading with microsecond precision (3 digits after the point):
Node.js has module and other ways. Technically, almost any device and environment allows to get more precision, it’s just not in .
Описание time и mktime
Уже упоминалось, что time возвратит количество секунд с начала т. н. эпохи Unix и вплоть до текущего времени. Однако на практике эта функция чаще используется не в «чистом виде», а вместе с иными функциями.
Для начала займёмся её использованием вместе с меткой текущей даты:
<?php $now = time(); // метка echo $now; $nextWeek = time() + (7 * 24 * 60 * 60); // 7 дней; 24 ч.; 60 мин.; 60 сек. echo $nextWeek; // будет выведено что-то вроде 16026782231603283023
А теперь используем её же, но уже совместно с date(). Давайте выведем текущую дату двумя способами, а потом выведем дату, которая наступит через неделю:
<?php $now = time(); $nextWeek = time() + (7 * 24 * 60 * 60); // Первый способ вывода даты echo 'Сегодня: '. date('Y-m-d') ."\n"; // Второй способ вывода echo 'Сегодня: '. date('Y-m-d', $now) ."\n"; // Дата через неделю echo 'Через неделю будет: '. date('Y-m-d', $nextWeek) ."\n";
Теперь стоит поговорить о том, каким образом с функцией time используется mktime. Именно mktime возвращает метки времени Unix для даты, которую укажет пользователь.
Аргументы могут быть разные, а также опущены справа налево:
Лучше всего рассмотреть вышеописанное на примере. Давайте выведем в терминал:
— текущую полную дату и время (часы, минуты, секунды);
— время и дату завтрашнего дня;
— время и дату следующего месяца того же дня;
— ту же дату, но уже прошедшего года.
<?php // выводим текущую дату и время echo date("r"); // создание метки для завтрашнего дня $tomorrow = mktime(,,,date("m"),date("d")+1, date("Y")); echo date("r", $tomorrow); // создание метки для следующего месяца $nextmonth = mktime(,,,date("m")+1,date("d"), date("Y")); echo date("r", $nextmonth ); // метка для прошлого года $lastyear= mktime(,,,date("m")+1,date("d"), date("Y")-1); echo date("r", $lastyear);
На этом всё
Если интересуют более сложные и продвинутые знания по PHP, обратите внимание на соответствующий курс в OTUS!
По материалам статей:
— https://labs-org.ru/php-6/;
— https://space-base.ru/library/php/rabota-s-datoj-i-vremenem-v-php.
Создание даты – 4 примера
В JavaScript создание даты осуществляется с помощью объекта . Объект представляет собой точку на оси времени и предназначен для хранения даты и времени с точностью до миллисекунды.
Примеры создания даты в JavaScript.
1. Создание текущей даты и времени.
Получить текущую дату и время в JavaScript осуществляется посредством создания экземпляра объекта Date без указания параметров:
// текущая дата (дата и время, которая была в момент создания экземпляра объекта Date на локальном компьютере пользователя) var now = new Date(); // например, выведем текущую дату в консоль console.log(now);
Если нужно получить только сегодняшнюю дату в формате строки, то можно воспользоваться методом :
var now = new Date().toLocaleDateString(); // 19.12.2019
Текущее время пользователя можно получить так:
var now = new Date().toLocaleTimeString(); // 11:02:48 var now = new Date().toLocaleTimeString().slice(0,-3); // 11:02
Дату и время в формате строки можно получить следующим образом:
var now = new Date().toLocaleString(); // 19.12.2019, 11:02:48
2. Создание даты путём указания объекту количества миллисекунд, прошедших с 1 января 1970 00:00:00 UTC.
// 1 год (не высокосный) = 365*24*60*60*1000 = 31536000000 мс // например, создадим дату 01.01.1971, 00:00:00 по UTC: var date1 = new Date(31536000000);
3. Создание даты посредством указания её объекту Date в виде строки.
При этом варианте создания даты JavaScript попытается понять переданную ей строку и сформировать на основе её дату. Преобразование строки в дату в JavaScript осуществляется с помощью метода .
Например:
// создание даты на основе строки в формате DD.MM.YY var date1 = new Date('05.11.19'); // создадим дату на основе строки в формате YYYY-MM-DDThh:mm:ss.sss (символ T используется для разделения даты и времени) var date2 = new Date('2015-02-24T21:23'); // создадим дату на основе строки с указанием часового пояса (формат YYYY-MM-DDThh:mm:ss.sss±hh:mm): var date3 = new Date('2015-02-24T22:02+03:00');
4. Создание даты посредством указания следующих параметров через запятую: год (4 цифры), месяц (отсчёт ведётся с 0), день (1..31), часы (0..23), минуты (0..59), секунды (0..59), миллисекунды (0..999). Причём обязательными из них являются только первые два параметра.
Пример создания даты с указанием только обязательных параметров:
// создадим дату 01.01.2015 (неуказанные параметры по умолчанию равны: число - 01, часы - 00, минуты - 00, секунды - 00, миллисекунды – 000). var date1 = new Date(2015,01); // создадим дату 24.01.2015, 21:23 var date2 = new Date(2015,01,24,21,23);
Примечание: Если Вам необходимо установить дату и время в UTC, то можно воспользоваться методом .
//1 пример var date1 = Date.UTC(2015,1,1); var date2 = new Date(date1); alert(date2.toUTCString()); //2 пример var newDate = new Date(Date.UTC(2015,1,1)); alert(newDate.toUTCString());
Разбор строки, Date.parse
Все современные браузеры, включая IE9+, понимают даты в упрощённом формате ISO 8601 Extended.
Этот формат выглядит так: , где:
- – дата в формате год-месяц-день.
- Обычный символ используется как разделитель.
- – время: часы-минуты-секунды-миллисекунды.
- Часть обозначает временную зону – в формате , либо символ , обозначающий UTC. По стандарту её можно не указывать, тогда UTC, но в Safari с этим ошибка, так что лучше указывать всегда.
Также возможны укороченные варианты, например или или даже только .
Метод разбирает строку в таком формате и возвращает соответствующее ей количество миллисекунд. Если это невозможно, возвращает .
Например:
С таймзоной :
Формат дат для IE8-
До появления спецификации ECMAScript 5 формат не был стандартизован, и браузеры, включая IE8-, имели свои собственные форматы дат. Частично, эти форматы пересекаются.
Например, код ниже работает везде, включая старые IE:
Вы также можете почитать о старых форматах IE в документации к методу MSDN Date.parse.
Конечно же, сейчас лучше использовать современный формат. Если же нужна поддержка IE8-, то метод , как и ряд других современных методов, добавляется библиотекой es5-shim.
Преобразование даты в строку и её форматирование
В JavaScript методы, выполняющие преобразование даты в строку, можно разделить на 2 группы.
К первой группе можно отнести методы, которые выполняют это так, как это определено в браузере: , , , .
Метод возвращает полное представление даты, – только дату, – только время, – полное представление даты, но в часовом поясе UTC+0.
Т.к. строковые представления, которые должны возвращать эти методы чётко не определены в стандарте, то они могут отличаться в разных браузерах.
Ко второй группе можно отнести методы с учётом часового пояса и языка локального компьютера: – дату и время, – только дату, – только время.
Методы , , имеют 2 необязательных параметра. Первый параметр предназначен для явного указания локали, второй — для задания опций форматирования.
Если локаль явно не установлена или , то браузер берёт ту, которую он имеет по умолчанию.
Кроме этого, в JavaScript имеется ещё метод . Он возвращает строку, содержащую дату и время в формате ISO ().
Пример:
// создадим дату 15.04.2019 18:43:59 (в часовом поясе пользователя) var newDate = new Date(2019, 03, 15, 18, 43, 59); console.log(newDate.toString()); // Mon Apr 15 2019 18:43:59 GMT+1000 (Владивосток, стандартное время) console.log(newDate.toDateString()); // Mon Apr 15 2019 console.log(newDate.toTimeString()); // 18:43:59 GMT+1000 (Владивосток, стандартное время) console.log(newDate.toLocaleString()); // 15.04.2019, 18:43:59 console.log(newDate.toLocaleDateString()); // 15.04.2019 console.log(newDate.toLocaleTimeString()); // 18:43:59 console.log(newDate.toUTCString()); // Mon, 15 Apr 2019 08:43:59 GMT console.log(newDate.toISOString()); // 2019-04-15T08:43:59.000Z
PHP Date/Time Functions
Function | Description |
---|---|
checkdate() | Validates a Gregorian date |
date_add() | Adds days, months, years, hours, minutes, and seconds to a date |
date_create_from_format() | Returns a new DateTime object formatted according to a specified format |
date_create() | Returns a new DateTime object |
date_date_set() | Sets a new date |
date_default_timezone_get() | Returns the default timezone used by all date/time functions |
date_default_timezone_set() | Sets the default timezone used by all date/time functions |
date_diff() | Returns the difference between two dates |
date_format() | Returns a date formatted according to a specified format |
date_get_last_errors() | Returns the warnings/errors found in a date string |
date_interval_create_from_date_string() | Sets up a DateInterval from the relative parts of the string |
date_interval_format() | Formats the interval |
date_isodate_set() | Sets the ISO date |
date_modify() | Modifies the timestamp |
date_offset_get() | Returns the timezone offset |
date_parse_from_format() | Returns an associative array with detailed info about a specified date, according to a specified format |
date_parse() | Returns an associative array with detailed info about a specified date |
date_sub() | Subtracts days, months, years, hours, minutes, and seconds from a date |
date_sun_info() | Returns an array containing info about sunset/sunrise and twilight begin/end, for a specified day and location |
date_sunrise() | Returns the sunrise time for a specified day and location |
date_sunset() | Returns the sunset time for a specified day and location |
date_time_set() | Sets the time |
date_timestamp_get() | Returns the Unix timestamp |
date_timestamp_set() | Sets the date and time based on a Unix timestamp |
date_timezone_get() | Returns the time zone of the given DateTime object |
date_timezone_set() | Sets the time zone for the DateTime object |
date() | Formats a local date and time |
getdate() | Returns date/time information of a timestamp or the current local date/time |
gettimeofday() | Returns the current time |
gmdate() | Formats a GMT/UTC date and time |
gmmktime() | Returns the Unix timestamp for a GMT date |
gmstrftime() | Formats a GMT/UTC date and time according to locale settings |
idate() | Formats a local time/date as integer |
localtime() | Returns the local time |
microtime() | Returns the current Unix timestamp with microseconds |
mktime() | Returns the Unix timestamp for a date |
strftime() | Formats a local time and/or date according to locale settings |
strptime() | Parses a time/date generated with strftime() |
strtotime() | Parses an English textual datetime into a Unix timestamp |
time() | Returns the current time as a Unix timestamp |
timezone_abbreviations_list() | Returns an associative array containing dst, offset, and the timezone name |
timezone_identifiers_list() | Returns an indexed array with all timezone identifiers |
timezone_location_get() | Returns location information for a specified timezone |
timezone_name_from_ abbr() | Returns the timezone name from abbreviation |
timezone_name_get() | Returns the name of the timezone |
timezone_offset_get() | Returns the timezone offset from GMT |
timezone_open() | Creates new DateTimeZone object |
timezone_transitions_get() | Returns all transitions for the timezone |
timezone_version_get() | Returns the version of the timezonedb |
PHP 5 предопределенные константы даты/времени
Постоянной | Описание |
---|---|
DATE_ATOM | Atom (example: 2005-08-15T16:13:03+0000) |
DATE_COOKIE | HTTP Cookies (example: Sun, 14 Aug 2005 16:13:03 UTC) |
DATE_ISO8601 | ISO-8601 (example: 2005-08-14T16:13:03+0000) |
DATE_RFC822 | RFC 822 (example: Sun, 14 Aug 2005 16:13:03 UTC) |
DATE_RFC850 | RFC 850 (example: Sunday, 14-Aug-05 16:13:03 UTC) |
DATE_RFC1036 | RFC 1036 (example: Sunday, 14-Aug-05 16:13:03 UTC) |
DATE_RFC1123 | RFC 1123 (example: Sun, 14 Aug 2005 16:13:03 UTC) |
DATE_RFC2822 | RFC 2822 (Sun, 14 Aug 2005 16:13:03 +0000) |
DATE_RSS | RSS (Sun, 14 Aug 2005 16:13:03 UTC) |
DATE_W3C | World Wide Web Consortium (example: 2005-08-14T16:13:03+0000) |
❮ Назад
Дальше ❯