Php 5 дата и время
Содержание:
- Функция PHP strftime()
- Функция date
- SQL Учебник
- Описание
- PHP Date and Time
- The PHP Date() Function
- PHP 5 Date/Time функции
- Runtime Configuration
- Параметр значений
- Getting the Date and Time in String Format
- What is a TimeStamp?
- Formatting the Dates and Times with PHP
- SQL Справочник
- Преобразование формата даты и времени в PHP
- PHP Timestamps
- PHP set Timezone Programmatically
- Example
- Frequently Asked Questions About date() in PHP
- Описание time и mktime
Функция PHP strftime()
Функция PHP используется для преобразования удобочитаемой строки даты в метку времени Unix (количество секунд с 1 января 1970 года 00:00:00 по Гринвичу).
Синтаксис
strtotime(time, now)
Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате.
Следующий пример создает дату и время из функции :
Результат выполнения кода:
Дата создания 2020-04-15 10:30:00pm
PHP очень умен в преобразовании строки в дату, поэтому вы можете вводить различные значения. Например, можем из строки получить дату завтрашнего дня, следующей субботы и дату ровно через семь месяцев:
В следующем примере вы можете посмотреть даты ближайших семи суббот начиная с момента изучения данного урока PHP:
Функция date
Эта функция возвратит пользователю строку в форме даты/времени, сделав это в определённом формате. Формат этот определяет сам пользователь.
Синтаксис функции выглядит так:
date($format);
Видно, что формат указывается в качестве аргумента. Этим аргументом могут выступать самые разные символы, коих существует целая таблица:
Теперь давайте попробуем, как эта таблица работает на практике. Выведем текущий день недели:
<?php echo date("l");
У меня получился Wednesday, а вот что отобразится в консоли у вас, зависит от дня недели, в который вы напишете эту команду.
Теперь выведем дату в виде YYYY-ММ-DD:
<?php echo date('Y-m-d');
А потом и дату, и время:
<?php echo date('l jS \of F Y h:i:s A');
SQL Учебник
SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии
Описание
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().
PHP Date and Time
Now, let’s mix it up a little bit and create our own time and not the current time. We want to format this into a full date and time string.
Example
echo date("Y-m-d H:i:s",mktime(6,30,51,12,01,1999)); // mktime(hour,minute,second,month,day,year)
Result 1999-12-01 06:30:51
Now, that is a lot to digest. We have created a full date and time string using special formatting with the PHP date function. mktime actually has parameters this time, which is how we create a custom date and time that is not the present. In order, the mktime parameters are hour, minute, second, month, day, and year. See how much easier it is to work with timestamps instead of creating dates and times separately? The PHP date function has a lot of different formatting values. I have included the references below. Feel free to tinker around with this in the first parameter of the date function to see how the characters actually format the string.
PHP Date and Time Formats
a | ‘am’ or ‘pm’ (lowercase) | pm |
A | ‘AM’ or ‘PM’ (uppercase) | PM |
d | Day of month, a number with leading zeroes | 20 |
D | Day of week (three letters) | Thu |
F | Month name | January |
h | Hour (12-hour format – leading zeroes) | 12 |
H | Hour (24-hour format – leading zeroes) | 22 |
g | Hour (12-hour format – no leading zeroes) | 12 |
G | Hour (24-hour format – no leading zeroes) | 22 |
i | Minutes ( 0 – 59 ) | 23 |
j | Day of the month (no leading zeroes | 20 |
l (Lower ‘L’) | Day of the week | Thursday |
L | Leap year (‘1’ for yes, ‘0’ for no) | 1 |
m | Month of year (number – leading zeroes) | 1 |
M | Month of year (three letters) | Jan |
r | The RFC 2822 formatted date | Thu, 21 Dec 2000 16:01:07 +0200 |
n | Month of year (number – no leading zeroes) | 2 |
s | Seconds of hour | 20 |
U | Time stamp | 948372444 |
y | Year (two digits) | 06 |
Y | Year (four digits) | 2006 |
z | Day of year (0 – 365) | 206 |
Z | Offset in seconds from GMT | +5 |
The PHP Date() Function
The PHP function convert a timestamp to a more readable date and time.
The computer stores dates and times in a format called UNIX Timestamp, which measures time as a number of seconds since the beginning of the Unix epoch (midnight Greenwich Mean Time on January 1, 1970 i.e. January 1, 1970 00:00:00 GMT ).
Since this is an impractical format for humans to read, PHP converts a timestamp to a format that is readable to humans and dates from your notation into a timestamp the computer understands. The syntax of the PHP function can be given with.
date(format, timestamp)
The format parameter in the function is required which specifies the format of returned date and time. However the timestamp is an optional parameter, if not included then current date and time will be used. The following statement displays today’s date:
Example
Run this code
Note: The PHP function return the current date and time according to the built-in clock of the web server on which the script has been executed.
PHP 5 Date/Time функции
Функция | Описание |
---|---|
checkdate() | Проверяет григорианскую дату |
date_add() | Добавляет дни, месяцы, годы, часы, минуты и секунды к дате |
date_create_from_format() | Возвращает новый объект DateTime, отформатированный в соответствии с указанным форматом |
date_create() | Возвращает новый объект DateTime |
date_date_set() | Устанавливает новую дату |
date_default_timezone_get() | Возвращает индексный часовой пояс, используемый всеми функциями даты и времени |
date_default_timezone_set() | Задает часовой пояс индекса, используемый всеми функциями даты и времени |
date_diff() | Возвращает разницу между двумя датами |
date_format() | Возвращает дату, отформатированную в соответствии с заданным форматом |
date_get_last_errors() | Возвращает предупреждения/ошибки, найденные в строке даты |
date_interval_create_from_date_string() | Устанавливает для dateinterval из относительной части строки |
date_interval_format() | Форматирует интервал |
date_isodate_set() | Устанавливает дату ISO |
date_modify() | Изменяет метку времени |
date_offset_get() | Возвращает смещение часового пояса |
date_parse_from_format() | Возвращает ассоциативный массив с подробной информацией о заданной дате в соответствии с заданным форматом |
date_parse() | Возвращает ассоциативный массив с подробной информацией о заданной дате |
date_sub() | Вычитает дни, месяцы, годы, часы, минуты и секунды из даты |
date_sun_info() | Возвращает массив, содержащий информацию о начале/конце заката/восхода солнца и сумерек для указанного дня и местоположения |
date_sunrise() | Возвращает время восхода солнца для указанного дня и местоположения |
date_sunset() | Возвращает время захода солнца для указанного дня и местоположения |
date_time_set() | Устанавливат время |
date_timestamp_get() | Возвращает метку времени Unix |
date_timestamp_set() | Устанавливает дату и время на основе временной метки Unix |
date_timezone_get() | Возвращает часовой пояс данного объекта DateTime |
date_timezone_set() | Задает часовой пояс для объекта DateTime |
date() | Форматирует локальную дату и время |
getdate() | Возвращает информацию о дате/времени метки времени или текущей локальной дате/времени |
gettimeofday() | Возвращает текущее время |
gmdate() | Форматирует дату и время GMT/UTC |
gmmktime() | Возвращает метку времени Unix для даты GMT |
gmstrftime() | Форматирует дату и время GMT/UTC в соответствии с настройками локали |
idate() | Форматирует местное время/дату как целое число |
localtime() | Возвращает местное время |
microtime() | Возвращает текущую метку времени Unix в микросекундах |
mktime() | Возвращает метку времени Unix для даты |
strftime() | Форматирует местное время и/или дату в соответствии с настройками локали |
strptime() | Анализирует время/дату, сгенерированные с помощью strftime() |
strtotime() | Разбирает английское текстовое представление даты в метку времени Unix |
time() | Возвращает текущее время в виде временной метки Unix |
timezone_abbreviations_list() | Возвращает ассоциативный массив, содержащий летнее время, смещение и имя часового пояса |
timezone_identifiers_list() | Возвращает индексированный массив со всеми идентификаторами часовых поясов |
timezone_location_get() | Возвращает информацию о местоположении для указанного часового пояса |
timezone_name_from_ abbr() | Возвращает название часового пояса из аббревиатуры |
timezone_name_get() | Возвращает название часового пояса |
timezone_offset_get() | Возвращает смещение часового пояса от GMT |
timezone_open() | Создает новый объект DateTimeZone |
timezone_transitions_get() | Возвращает все переходы для часового пояса |
timezone_version_get() | Возвращает версию базы данных часового пояса |
Runtime Configuration
The behavior of these functions is affected by settings in php.ini:
Name | Description | Default | PHP Version |
---|---|---|---|
date.timezone | The default timezone (used by all date/time functions) | «» | PHP 5.1 |
date.default_latitude | The default latitude (used by date_sunrise() and date_sunset()) | «31.7667» | PHP 5.0 |
date.default_longitude | The default longitude (used by date_sunrise() and date_sunset()) | «35.2333» | PHP 5.0 |
date.sunrise_zenith | The default sunrise zenith (used by date_sunrise() and date_sunset()) | «90.83» | PHP 5.0 |
date.sunset_zenith | The default sunset zenith (used by date_sunrise() and date_sunset()) | «90.83» | PHP 5.0 |
Параметр значений
Параметр | Описание |
---|---|
object | Требуемый. Задает объект DateTime, возвращает date_create() |
format | Требуемый. Задает формат для даты. Можно использовать следующие символы:
кроме того, можно использовать следующие предопределенные константы (доступны начиная с PHP 5.1.0):
|
Getting the Date and Time in String Format
is one of the most commonly used date and time functions available in PHP. It takes the desired output format for the date as the first parameter and an integer as a timestamp value which needs to be converted to the given date format. The second parameter is optional, and omitting it will output the current date and time in string format based on the value of .
The parameter accepts a series of characters as valid values. Some of these characters have straightforward meanings: gives you the full numeric representation of the year with 4 digits (2018), and only gives you the last two digits of the current year (18). Similarly, will give you the hour in 24-hour format with leading zeros, but will give you the hour in 12-hour format with leading zeros.
Here are some of the most common date format characters and their values.
Character | Meaning | Example |
---|---|---|
day of the month with leading zeros | 03 or 17 | |
day of the month without leading zeros | 3 or 17 | |
day of the week as a three-letter abbreviation | Mon | |
full day of the week | Monday | |
month as a number with leading zeros | 09 or 12 | |
month as a number without leading zeros | 9 or 12 | |
month as a three-letter abbreviation | Sep | |
full month | September | |
two-digit year | 18 | |
full year | 2018 |
There are many other special characters to specify the output for the function. It is best to consult the format characters table in the function documentation for more information about special cases.
Let’s see some practical examples of the function now. We can use it to get the current year, current month, current hour, etc., or we can use it to get a complete date string.
You can also use the function to output the time. Here are some of the most commonly used time format characters:
Character | Meaning | Example |
---|---|---|
hours in 12-hour format without leading zeros | 1 or 12 | |
hours in 12-hour format with leading zeros | 01 or 12 | |
hours in 24-hour format without leading zeros | 1 or 13 | |
hours in 24-hour format with leading zeros | 01 or 13 | |
am/pm in lowercase | am | |
am/pm in uppercase | AM | |
minutes with leading zeros | 09 or 15 | |
seconds with leading zeros | 05 or 30 |
And here are some examples of outputting formatted time strings.
It is also important that you escape these special characters if you want to use them inside your date string.
What is a TimeStamp?
A timestamp in PHP is a numeric value in seconds between the current time and value as at 1st January, 1970 00:00:00 Greenwich Mean Time (GMT).
The value returned by the time function depends on the default time zone.
The default time zone is set in the php.ini file.
It can also be set programmatically using date_default_timezone_set function.
The code below displays the current time stamp
<?php echo time(); ?>
Assuming you saved the file timestamp.php in phptuts folder, browse to the URL http://localhost/phptuts/timestamp.php
Note: the value of the timestamp PHP is not a constant. It changes every second.
Formatting the Dates and Times with PHP
The format parameter of the function is in fact a string that can contain multiple characters allowing you to generate a date string containing various components of the date and time, like day of the week, AM or PM, etc. Here are some the date-related formatting characters that are commonly used in format string:
- d — Represent day of the month; two digits with leading zeros (01 or 31)
- D — Represent day of the week in text as an abbreviation (Mon to Sun)
- m — Represent month in numbers with leading zeros (01 or 12)
- M — Represent month in text, abbreviated (Jan to Dec)
- y — Represent year in two digits (08 or 14)
- Y — Represent year in four digits (2008 or 2014)
The parts of the date can be separated by inserting other characters, like hyphens (), dots (), slashes (), or spaces to add additional visual formatting.
Tip: You can use the PHP function to automatically update the copyright duration on your website, like:
Similarly you can use the following characters to format the time string:
- h — Represent hour in 12-hour format with leading zeros (01 to 12)
- H — Represent hour in in 24-hour format with leading zeros (00 to 23)
- i — Represent minutes with leading zeros (00 to 59)
- s — Represent seconds with leading zeros (00 to 59)
- a — Represent lowercase ante meridiem and post meridiem (am or pm)
- A — Represent uppercase Ante meridiem and Post meridiem (AM or PM)
The PHP code in the following example displays the date in different formats:
SQL Справочник
SQL Ключевые слова
ADD
ADD CONSTRAINT
ALTER
ALTER COLUMN
ALTER TABLE
ALL
AND
ANY
AS
ASC
BACKUP DATABASE
BETWEEN
CASE
CHECK
COLUMN
CONSTRAINT
CREATE
CREATE DATABASE
CREATE INDEX
CREATE OR REPLACE VIEW
CREATE TABLE
CREATE PROCEDURE
CREATE UNIQUE INDEX
CREATE VIEW
DATABASE
DEFAULT
DELETE
DESC
DISTINCT
DROP
DROP COLUMN
DROP CONSTRAINT
DROP DATABASE
DROP DEFAULT
DROP INDEX
DROP TABLE
DROP VIEW
EXEC
EXISTS
FOREIGN KEY
FROM
FULL OUTER JOIN
GROUP BY
HAVING
IN
INDEX
INNER JOIN
INSERT INTO
INSERT INTO SELECT
IS NULL
IS NOT NULL
JOIN
LEFT JOIN
LIKE
LIMIT
NOT
NOT NULL
OR
ORDER BY
OUTER JOIN
PRIMARY KEY
PROCEDURE
RIGHT JOIN
ROWNUM
SELECT
SELECT DISTINCT
SELECT INTO
SELECT TOP
SET
TABLE
TOP
TRUNCATE TABLE
UNION
UNION ALL
UNIQUE
UPDATE
VALUES
VIEW
WHERE
MySQL Функции
Функции строк
ASCII
CHAR_LENGTH
CHARACTER_LENGTH
CONCAT
CONCAT_WS
FIELD
FIND_IN_SET
FORMAT
INSERT
INSTR
LCASE
LEFT
LENGTH
LOCATE
LOWER
LPAD
LTRIM
MID
POSITION
REPEAT
REPLACE
REVERSE
RIGHT
RPAD
RTRIM
SPACE
STRCMP
SUBSTR
SUBSTRING
SUBSTRING_INDEX
TRIM
UCASE
UPPER
Функции чисел
ABS
ACOS
ASIN
ATAN
ATAN2
AVG
CEIL
CEILING
COS
COT
COUNT
DEGREES
DIV
EXP
FLOOR
GREATEST
LEAST
LN
LOG
LOG10
LOG2
MAX
MIN
MOD
PI
POW
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SUM
TAN
TRUNCATE
Функции дат
ADDDATE
ADDTIME
CURDATE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURTIME
DATE
DATEDIFF
DATE_ADD
DATE_FORMAT
DATE_SUB
DAY
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
EXTRACT
FROM_DAYS
HOUR
LAST_DAY
LOCALTIME
LOCALTIMESTAMP
MAKEDATE
MAKETIME
MICROSECOND
MINUTE
MONTH
MONTHNAME
NOW
PERIOD_ADD
PERIOD_DIFF
QUARTER
SECOND
SEC_TO_TIME
STR_TO_DATE
SUBDATE
SUBTIME
SYSDATE
TIME
TIME_FORMAT
TIME_TO_SEC
TIMEDIFF
TIMESTAMP
TO_DAYS
WEEK
WEEKDAY
WEEKOFYEAR
YEAR
YEARWEEK
Функции расширений
BIN
BINARY
CASE
CAST
COALESCE
CONNECTION_ID
CONV
CONVERT
CURRENT_USER
DATABASE
IF
IFNULL
ISNULL
LAST_INSERT_ID
NULLIF
SESSION_USER
SYSTEM_USER
USER
VERSION
SQL Server функции
Функции строк
ASCII
CHAR
CHARINDEX
CONCAT
Concat with +
CONCAT_WS
DATALENGTH
DIFFERENCE
FORMAT
LEFT
LEN
LOWER
LTRIM
NCHAR
PATINDEX
QUOTENAME
REPLACE
REPLICATE
REVERSE
RIGHT
RTRIM
SOUNDEX
SPACE
STR
STUFF
SUBSTRING
TRANSLATE
TRIM
UNICODE
UPPER
Функции чисел
ABS
ACOS
ASIN
ATAN
ATN2
AVG
CEILING
COUNT
COS
COT
DEGREES
EXP
FLOOR
LOG
LOG10
MAX
MIN
PI
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SQUARE
SUM
TAN
Функции дат
CURRENT_TIMESTAMP
DATEADD
DATEDIFF
DATEFROMPARTS
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE
ISDATE
MONTH
SYSDATETIME
YEAR
Функции расширений
CAST
COALESCE
CONVERT
CURRENT_USER
IIF
ISNULL
ISNUMERIC
NULLIF
SESSION_USER
SESSIONPROPERTY
SYSTEM_USER
USER_NAME
MS Access функции
Функции строк
Asc
Chr
Concat with &
CurDir
Format
InStr
InstrRev
LCase
Left
Len
LTrim
Mid
Replace
Right
RTrim
Space
Split
Str
StrComp
StrConv
StrReverse
Trim
UCase
Функции чисел
Abs
Atn
Avg
Cos
Count
Exp
Fix
Format
Int
Max
Min
Randomize
Rnd
Round
Sgn
Sqr
Sum
Val
Функции дат
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Format
Hour
Minute
Month
MonthName
Now
Second
Time
TimeSerial
TimeValue
Weekday
WeekdayName
Year
Другие функции
CurrentUser
Environ
IsDate
IsNull
IsNumeric
SQL ОператорыSQL Типы данныхSQL Краткий справочник
Преобразование формата даты и времени в PHP
Простейший механизм, позволяющий преобразовать числовое значение даты на более понятные значения, предоставляется функцией:
Она возвращает ассоциативный массив, содержащий информацию о дате. Если параметр 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 |
Полученный массив, позволяет вывести значения нужном виде:
Так же для преобразования формата даты и времени можно воспользоваться функцией:
Она предназначена для получения текущей даты 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) |
Как видно из списка, с помощью этой функции можно получить очень много полезных данных о дате. Например:
Другие символы, входящие в шаблон, будут выведены в строке как есть. Если же потребуется ввести символ, который используется в функции как код формата, перед ними вставляется символ «\». Для значения «\n» (символ перехода на новую строку), следует указать «\\n». Таким образом, можно делать вывод целого сообщения, содержащего сведения о дате и времени:
PHP Timestamps
The PHP timestamp is a Unix timestamp that tracks the number of seconds since January 1, 1970 because we apparently believe milliseconds are useless. Nevertheless, let’s create a timestamp.
Example
echo time();
Result 1359780799
So, we just use PHP’s time function with default parameters to create a timestamp of this very moment (well, the moment I created this tutorial). Why would we want something like that when users cannot understand its format? First, it is a very consistent and easy to manipulate number. Second, I will show you how to format the timestamp into PHP dates and times in just a second. Also, note if you just want the current time, you should use time, but you should use mktime for custom datetimes.
PHP set Timezone Programmatically
The date_default_timezone_set function allows you to set the default time zone from a PHP script.
The set time zone will then be used by all date in PHP function scripts. It has the following syntax.
<?php date_default_timezone_set ( string $timezone_identifier ); ?>
HERE,
- “date_default_timezone_set()” is the function that sets the default time zone
- “string $timezone_identifier” is the time zone identifier
The script below displays the time according to the default time zone set in php.ini.
It then changes the default time zone to Asia/Calcutta and displays the time again.
<?php echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s"); date_default_timezone_set("Asia/Calcutta"); echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s"); ?>
Assuming you have saved the file set_time_zone.php in the phptuts folder, browse to the URL http://localhost/phptuts/set_time_zone.php
Example
Following example creates a new date using the date_format() method −
<?php $dateSrc = '2005-04-19 12:50 GMT'; $dateTime = date_create( $dateSrc);; # Now set a new date using date_format(); date_format( $dateTime, 2000, 12, 12); echo "New Formatted date is ". $dateTime->format("Y-m-d\TH:i:s\Z"); echo ""; # Using second function. $dateTime = new DateTime($dateSrc); $dateTime->setDate( 1999, 10, 12); echo "New Formatted date is ". $dateTime->format("Y-m-d\TH:i:s\Z"); ?>
This produces the following output −
New Formatted date is 2000-12-12T12:50:00Z New Formatted date is 1999-10-12T12:50:00Z
Frequently Asked Questions About date() in PHP
There are some common questions about getting different kinds of information from the function in PHP that pop up every now and then. We will try to answer all of them here.
How Do I Get the Current Year in PHP?
You can get the current year in PHP by using or . Using a capital Y will give you all the digits of the current year, like 2021. Using the small y will only give you the last two digits, like 21.
What Is the Right Way to Get the Current Month in PHP?
There are four different characters for getting the current month in PHP, depending on the format you want. You can use the capital letter F to get the full name of the month, like February, or get the month in a shorter three-letter format by using M.
You can also get the current month in numerical terms by using m and n, which will give you the month with and without leading zeroes respectively.
How Can I Get the Day of the Week in PHP?
You can also get the day of the week in PHP by using four different characters. The capital D will give you a three-letter representation of the day of the week, like Mon or Tue. Using an l (lowercase L) will give you the full name of the day of the week.
You can get a numerical value between (for Sunday) and 6 (for Saturday) for the days of a week by using w.
How Do I Get the Current Time in 12-Hour Format in PHP?
You can get the current time of the day in a 12-hour format by using g or h. With g, you will get the time without any leading zeroes, while h will add some leading zeroes. The AM or PM can be added by using a (for small letters) or A (for capital letters).
Can I Get the Current Time in 24-Hour Format in PHP?
Using the characters G and H will give you the current hour of the day in 24-hour format. You won’t get any leading zeroes with G, but H will add leading zeroes.
What Is the Best Way to Escape Characters in a Date Format?
The function accepts a string as its parameter, but many characters have a well-defined meaning, like Y for year and F for a month. This means that using these characters directly as part of a string may not always have the desired results.
If you want the function to output these characters, then you have to escape them first. Here is an example:
Some of the characters, like t, need two backslashes because \t is meant for tabs. If possible, it is advisable to just put the regular string that you want to echo outside . Otherwise, you will be escaping a lot of characters.
Описание 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.