Объект date в javascript. методы. примеры использования
Содержание:
- Отправка формы с Blob-данными
- Date Methods with UTC
- Access date components
- Description
- Создание
- Дата в GMT-формате (относительно Гринвического меридиана)
- Локаль
- Retrieving the Date with get
- JavaScript и База данных часовых поясов IANA
- Displaying Dates
- About the Author
- JS Tutorial
- Обработка часового пояса в JavaScript
- Перевод строки в Date
- The Date Object
- Преобразование формата даты и времени в PHP
Отправка формы с Blob-данными
Ранее в главе Fetch мы видели, что очень легко отправить динамически сгенерированные бинарные данные в формате . Мы можем явно передать её в параметр запроса .
Но на практике бывает удобнее отправлять изображение не отдельно, а в составе формы, добавив дополнительные поля для имени и другие метаданные.
Кроме того, серверы часто настроены на приём именно форм, а не просто бинарных данных.
В примере ниже посылается изображение из и ещё несколько полей, как форма, используя :
Пожалуйста, обратите внимание на то, как добавляется изображение :
Это как если бы в форме был элемент и пользователь прикрепил бы файл с именем (3й аргумент) и данными (2й аргумент) из своей файловой системы.
Сервер прочитает и данные и файл, точно так же, как если бы это была обычная отправка формы.
Date Methods with UTC
The methods discussed above retrieve the date components based on the user’s local timezone settings. For increased control over the dates and times, you can use the methods, which are exactly the same as the methods, except they calculate the time based on the UTC (Coordinated Universal Time) standard. Below is a table of the UTC methods for the JavaScript object.
Date/Time | Method | Range | Example |
---|---|---|---|
Year | YYYY | 1970 | |
Month | 0-11 | 0 = January | |
Day (of the month) | 1-31 | 1 = 1st of the month | |
Day (of the week) | 0-6 | 0 = Sunday | |
Hour | 0-23 | 0 = midnight | |
Minute | 0-59 | ||
Second | 0-59 | ||
Millisecond | 0-999 |
To test the difference between local and UTC methods, we can run the following code.
UTC.js
Running this code will print out the current hour, and the hour of the UTC timezone. If you are currently in the UTC timezone the numbers that are output from running the program above will be the same.
UTC is useful in that it provides an international time standard reference and can therefore keep your code consistent across timezones if that is applicable to what you are developing.
Access date components
There are methods to access the year, month and so on from the object:
- getFullYear()
- Get the year (4 digits)
- getMonth()
- Get the month, from 0 to 11.
- getDate()
- Get the day of month, from 1 to 31, the name of the method does look a little bit strange.
- getHours(), getMinutes(), getSeconds(), getMilliseconds()
- Get the corresponding time components.
Not , but
Many JavaScript engines implement a non-standard method . This method is deprecated. It returns 2-digit year sometimes. Please never use it. There is for the year.
Additionally, we can get a day of week:
- getDay()
- Get the day of week, from (Sunday) to (Saturday). The first day is always Sunday, in some countries that’s not so, but can’t be changed.
All the methods above return the components relative to the local time zone.
There are also their UTC-counterparts, that return day, month, year and so on for the time zone UTC+0: getUTCFullYear(), getUTCMonth(), getUTCDay(). Just insert the right after .
If your local time zone is shifted relative to UTC, then the code below shows different hours:
Besides the given methods, there are two special ones that do not have a UTC-variant:
- getTime()
-
Returns the timestamp for the date – a number of milliseconds passed from the January 1st of 1970 UTC+0.
- getTimezoneOffset()
-
Returns the difference between UTC and the local time zone, in minutes:
Description
D’un point de vue technique, une date JavaScript correspond au nombre de millisecondes écoulées depuis le premier janvier 1970, minuit UTC. Cette date et cette heure sont les mêmes que l’epoch UNIX, qui est l’instant de référence principalement utilisé pour manipuler les dates/heures dans les systèmes informatiques.
Note : Bien que les valeurs temporelles des objets dates soient relatives à UTC, certaines des méthodes simples pour obtenir les composantes d’une date/heure fonctionnent relativement au fuseau horaire du système.
On notera également que la représentation maximale d’un objet n’est pas la même que le plus grand entier représentable en JavaScript ( vaut 9,007,199,254,740,991). En effet, ECMA-262 définit un maximum de ±100 000 000 (cent millions) jours relatifs au premier janvier 1970 UTC (ce qui correspond au 20 avril 271 821 avant notre ètre d’une part et au 13 septembre 275 760 de notre ère) pouvant être représentés par un objet standard (soit un intervalle de ±8 640 000 000 000 000 millisecondes).
Il existe différentes méthodes pour obtenir une date sous différents formats ou effectuer une conversion entre différents fuseaux. On distingue notamment les fonctions qui manipulent les dates relativement au temps universal coordonné (UTC). Le temps local est celui utilisé par l’appareil de l’utilisateur.
Ainsi, on dispose de méthodes permettant d’obtenir ou de définir les différentes composantes d’une date selon le temps local (ex. , ) et de méthodes équivalentes pour la manipulation en UTC (ex. et respectivement).
Создание
Для создания нового объекта нужно вызвать конструктор с одним из следующих аргументов:
-
Без аргументов – создать объект с текущими датой и временем:
-
Создать объект с временем, равным количеству миллисекунд (тысячная доля секунды), прошедших с 1 января 1970 года UTC+0.
Целое число, представляющее собой количество миллисекунд, прошедших с начала 1970 года, называется таймстамп (англ. timestamp).
Это – легковесное численное представление даты. Из таймстампа всегда можно получить дату с помощью и преобразовать существующий объект в таймстамп, используя метод (см. ниже).
Датам до 1 января 1970 будут соответствовать отрицательные таймстампы, например:
-
Если аргумент всего один, и это строка, то из неё «прочитывается» дата. Алгоритм разбора – такой же, как в , который мы рассмотрим позже.
-
Создать объект с заданными компонентами в местном часовом поясе. Обязательны только первые два аргумента.
- должен состоять из четырёх цифр: значение корректно, – нет.
- начинается с (январь) по (декабрь).
- Параметр здесь представляет собой день месяца. Если параметр не задан, то принимается значение .
- Если параметры отсутствуют, их значением становится .
Например:
Максимальная точность – 1 мс (до 1/1000 секунды):
Дата в GMT-формате (относительно Гринвического меридиана)
- — для вывода только даты;
- — для вывода только времени с указанием временного пояса (например, GMT+0200).
Давайте посмотрим на разницу между методами:
Локализованные дата и время
JavaScript
document.write(‘<p><strong>Дата+время</strong>: ‘ + d.toLocaleString()+'</p>’);
document.write(‘<p><strong>Только дата</strong>: ‘ + d.toLocaleDateString()+'</p>’);
document.write(‘<p><strong>Только время</strong>: ‘ + d.toLocaleTimeString()+'</p>’);
document.write(‘<p><strong>Дата относительно GMT</strong>: ‘ + d.toDateString()+'</p>’);
document.write(‘<p><strong>Время относительно GMT</strong>: ‘ + d.toTimeString()+'</p>’);
1 |
document.write(‘<p><strong>Дата+время</strong>: ‘+d.toLocaleString()+'</p>’); document.write(‘<p><strong>Только дата</strong>: ‘+d.toLocaleDateString()+'</p>’); document.write(‘<p><strong>Только время</strong>: ‘+d.toLocaleTimeString()+'</p>’); document.write(‘<p><strong>Дата относительно GMT</strong>: ‘+d.toDateString()+'</p>’); document.write(‘<p><strong>Время относительно GMT</strong>: ‘+d.toTimeString()+'</p>’); |
Проверяем:
Кроме локальных вариантов вывода даты вы можете использовать еще ряд методов, которые представляют строковое значение даты и времени в различных форматах:
Локаль
Локаль – первый и самый важный аргумент всех методов, связанных с интернационализацией.
Локаль описывается строкой из трёх компонентов, которые разделяются дефисом:
- Код языка.
- Код способа записи.
- Код страны.
На практике не всегда указаны три, обычно меньше:
- – русский язык, без уточнений.
- – английский язык, используемый в Англии ().
- – английский язык, используемый в США ().
- – китайский язык (), записываемый упрощённой иероглифической письменностью (), используемый в Китае.
Также через суффикс можно указать расширения локалей, например – тайский язык (), используемый в Таиланде (), с записью чисел тайскими буквами (๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙) .
Стандарт, который описывает локали – RFC 5464, языки описаны в IANA language registry.
Все методы принимают локаль в виде строки или массива, содержащего несколько локалей в порядке предпочтения.
Если локаль не указана или – берётся локаль по умолчанию, установленная в окружении (браузере).
– вспомогательная настройка, которую тоже можно везде указать, она определяет способ подбора локали, если желаемая недоступна.
У него два значения:
- – означает простейший порядок поиска путём обрезания суффикса, например → → → локаль по умолчанию.
- – использует встроенные алгоритмы и предпочтения браузера (или другого окружения) для выбора подходящей локали.
По умолчанию стоит .
Если локалей несколько, например то пытается подобрать наиболее подходящую локаль для первой из списка (китайская), если не получается – переходит ко второй (русской) и так далее. Если ни одной не нашёл, например на компьютере не совсем поддерживается ни китайский ни русский, то используется локаль по умолчанию.
Как правило, является здесь наилучшим выбором.
Retrieving the Date with get
Once we have a date, we can access all the components of the date with various built-in methods. The methods will return each part of the date relative to the local timezone. Each of these methods starts with , and will return the relative number. Below is a detailed table of the methods of the object.
Date/Time | Method | Range | Example |
---|---|---|---|
Year | YYYY | 1970 | |
Month | 0-11 | 0 = January | |
Day (of the month) | 1-31 | 1 = 1st of the month | |
Day (of the week) | 0-6 | 0 = Sunday | |
Hour | 0-23 | 0 = midnight | |
Minute | 0-59 | ||
Second | 0-59 | ||
Millisecond | 0-999 | ||
Timestamp | Milliseconds since Epoch time |
Let’s make a new date, based on July 31, 1980, and assign it to a variable.
harryPotter.js
Now we can use all our methods to get each date component, from year to millisecond.
getDateComponents.js
Sometimes it may be necessary to extract only part of a date, and the built-in methods are the tool you will use to achieve this.
For an example of this, we can test the current date against the day and month of October 3rd to see whether it’s October 3rd or not.
oct3.js
Since, at the time of writing, it’s not October 3rd, the console reflects that.
The built-in methods that begin with allow us to access date components that return the number associated with what we are retrieving from the instantiated object.
JavaScript и База данных часовых поясов IANA
Как я вкратце упомянул ранее, поддержка часового пояса в JavaScript довольно плохая. Поскольку по умолчанию он следует часовому поясу определенного региона (точнее, часовому поясу, выбранному во время установки ОС), возможности изменить его на новый часовой пояс нет. Кроме того, его спецификация для стандарта баз данных так же плохо определена, вы заметите это, если внимательно ознакомитесь с документацией ES2015. В отношении местного часового пояса и доступности летнего времени существует лишь несколько неопределенных заявлений. Например, летнее время определяется следующим образом: .
В зависимости от реализации, алгоритм использует наилучшую доступную информацию о часовых поясах для определения местной поправки на летнее время DaylightSavingTA (t), измеряемой в миллисекундах. Ожидается, что реализация ECMAScript сделает все возможное, чтобы определить местное летнее время.
Похоже, он просто говорит: «Эй, ребята, попробуйте и сделайте все возможное, чтобы это сработало». Это создает проблемы в кроссбраузерности. Вы можете подумать: «Это небрежно!», и тогда вы заметите еще одну строчку прямо под ним:
ПРИМЕЧАНИЕ. рекомендуется использовать информацию о часовых поясах из базы данных часовых поясов IANA http://www.iana.org/time-zones/.
Спецификации ECMA признается, что не имеет специальной стандартной базы данных в JavaScript и рекомендует использовать базу данных часовых поясов IANA. В результате разные браузеры используют свои собственные решения для расчета часовых поясов, и они часто несовместимы друг с другом. Позже в ECMA-402 добавили возможность использовать часовой пояс IANA в виде Intl.DateTimeFormat для ECMAScript Internationalization API. Однако этот вариант по-прежнему гораздо менее надежен, чем в других языках программирования.
Часовой пояс в серверно-клиентской среде
Мы предположим простой сценарий, в котором необходимо учитывать часовой пояс. Допустим, мы собираемся разработать простое приложение-календарь, которое будет обрабатывать информацию о времени. Когда пользователь вводит дату и время в поле на странице реестра в клиентской среде, данные передаются на сервер и сохраняются в БД. Затем клиент получает зарегистрированные данные расписания с сервера и отображает их на экране.
Однако здесь есть то, что нужно учесть. Что, если некоторые из клиентов, обращающихся к серверу, находятся в разных часовых поясах? Расписание, зарегистрированное на 11 марта 2017 г. в 11:30 в Сеуле, должно отображаться как 10 марта 2017 г. в 21:30 при просмотре расписания в Нью-Йорке. Чтобы сервер поддерживал клиентов из разных часовых поясов, расписание, хранимое на сервере, должно иметь абсолютные значения, на которые не влияют часовые пояса. Каждый сервер имеет свой способ хранения абсолютных значений, и это выходит за рамки данной статьи, поскольку все зависит от сервера или среды базы данных. Однако для того, чтобы это работало, дата и время, передаваемые от клиента на сервер, должны быть значениями, основанными на том же смещении (обычно в формате UTC) или значениями, которые также включают данные часового пояса клиентской среды.
Обычно такие данные передаются в форме времени Unix на основе UTC или ISO-8601, содержащего информацию о смещении. В приведенном выше примере, если 11:30 утра 11 марта 2017 г. в Сеуле необходимо преобразовать во время Unix, это будет целочисленный тип со значением 1489199400. В соответствии с ISO-8601 это будет строковый тип, значение которого: .
Если вы работаете с этим с помощью JavaScript в среде браузера, вы должны преобразовать введенное значение, как описано выше, а затем преобразовать его обратно в соответствии с часовым поясом пользователя. Необходимо учитывать обе эти две задачи. В языке программирования первый называется «синтаксическим анализом», а второй «форматированием». Теперь давайте выясним, как это обрабатывается в JavaScript.
Даже когда вы работаете с JavaScript в серверной среде с использованием Node.js, возможно вам может потребоваться проанализировать данные, полученные от клиента. Однако, поскольку серверы обычно синхронизируют свой часовой пояс с базой данных, а задача форматирования обычно предоставляется клиентам, вам нужно учитывать меньше факторов, чем в среде браузера. В этой статье мы будем рассматривать примеры в среде браузера.
Displaying Dates
JavaScript will (by default) output dates in full text string format:
When you display a date object in HTML, it is automatically converted to a
string, with the method.
const d = new Date();
document.getElementById(«demo»).innerHTML = d;
Same as:
const d = new Date();
document.getElementById(«demo»).innerHTML = d.toString();
The method converts a date to a UTC string (a date display
standard).
const d = new Date();
document.getElementById(«demo»).innerHTML = d.toUTCString();
The method converts a date to a more readable
format:
const d = new Date();
document.getElementById(«demo»).innerHTML = d.toDateString();
The method converts a Date object to a string, using the ISO standard format:
About the Author
hector rivas
Software Developer (Senior) |
||
United States |
Professional software engineer with 30+ years of experience delivering systems across diverse industries, looking for the next opportunity to deliver cutting edge end-to-end technology solutions.
Avid reader, disciplined writer and enthusiastic tinkerer with a background in electronics, looking inside and thinking outside the box, genuinely passionate about robust, extensible, reusable and performant code.
Framework developer leading, coaching and learning about best practices, code quality, DevOps and software and data lifecycle management with an agile mindset to create the most elegant and sustainable solutions.
JS Tutorial
JS HOMEJS IntroductionJS Where ToJS OutputJS StatementsJS SyntaxJS CommentsJS VariablesJS LetJS ConstJS OperatorsJS ArithmeticJS AssignmentJS Data TypesJS FunctionsJS ObjectsJS EventsJS StringsJS String MethodsJS String SearchJS String TemplatesJS NumbersJS Number MethodsJS ArraysJS Array MethodsJS Array SortJS Array IterationJS Array ConstJS DatesJS Date FormatsJS Date Get MethodsJS Date Set MethodsJS MathJS RandomJS BooleansJS ComparisonsJS ConditionsJS SwitchJS Loop ForJS Loop For InJS Loop For OfJS Loop WhileJS BreakJS IterablesJS SetsJS MapsJS TypeofJS Type ConversionJS BitwiseJS RegExpJS ErrorsJS ScopeJS HoistingJS Strict ModeJS this KeywordJS Arrow FunctionJS ClassesJS JSONJS DebuggingJS Style GuideJS Best PracticesJS MistakesJS PerformanceJS Reserved Words
Обработка часового пояса в JavaScript
Недавно я работал над задачей добавления функции часового пояса в TOAST UI Calendar, библиотеку календарей JavaScript, созданную моей командой. Я хорошо знал, что поддержка часовых поясов в JavaScript довольно таки слабая и надеялся, что абстрагирование существующих инструментов легко решило бы многие проблемы.
Однако моя надежда не оправдалась, и продвигаясь в решении задачи, я все больше осознавал, насколько непросто обрабатывать часовой пояс в JavaScript. Реализация функций часовых поясов помимо простого форматирования времени и вычисления временных данных с помощью сложных операций (например, календаря) была поистине сложной задачей. По этой причине я приобрел бесценный опыт решения проблемы, который привел к возникновению новых проблем.
Цель это статьи — обсудить проблемы и решения, связанные с особенностями применения часовых поясов в JavaScript.. В процессе написания этой объемной статьи, я внезапно понял, что корень моей проблемы кроется в моем плохом понимании концепции часовых поясов. Поэтому я сначала подробно рассмотрю определение и стандарты, относящиеся к часовому поясу, а затем расскажу о JavaScript.
Перевод строки в Date
- 4 цифры для года (yyyy);
- 2 цифры для месяца (ММ);
- 2 цифры для дня (dd);
- 2 цифры для часов в 24-часовом формате (HH);
- 2 цифры для минут (mm);
- 2 цифры для секунд (ss).
SimpleDateFormat
Символ | Описание | Пример |
---|---|---|
G | эра (в английской локализации — AD и BC) | н.э. |
y | год (4-х значное число) | 2020 |
yy | год (последние 2 цифры) | 20 |
yyyy | год (4-х значное число) | 2020 |
M | номер месяца (без лидирующих нулей) | 8 |
MM | номер месяца (с лидирующими нулями, если порядковый номер месяца < 10) | 04 |
MMM | трехбуквенное сокращение месяца (в соответствии с локализацией) | янв |
MMMM | полное название месяца | Июнь |
w | неделя в году (без лидирующих нулей) | 4 |
ww | неделя в году (с лидирующими нулями) | 04 |
W | неделя в месяце (без лидирующих нулей) | 3 |
WW | неделя в месяце (с лидирующим нулем) | 03 |
D | день в году | 67 |
d | день месяца (без лидирующих нулей) | 9 |
dd | день месяца (с лидирующими нулями) | 09 |
F | день недели в месяце (без лидирующих нулей) | 9 |
FF | день недели в месяце (с лидирующими нулями) | 09 |
E | день недели (сокращение) | Вт |
EEEE | день недели (полностью) | пятница |
u | номер дня недели (без лидирующих нулей) | 5 |
uu | номер дня недели (с лидирующими нулями) | 05 |
a | маркер AM/PM | AM |
H | часы в 24-часовом формате без лидирующих нулей | 6 |
HH | часы в 24-часовом формате с лидирующим нулем | 06 |
k | количество часов в 24-часовом формате | 18 |
K | количество часов в 12-часовом формате | 6 |
h | время в 12-часовом формате без лидирующих нулей | 6 |
hh | время в 12-часовом формате с лидирующим нулем | 06 |
m | минуты без лидирующих нулей | 32 |
mm | минуты с лидирующим нулем | 32 |
s | секунды без лидирующих нулей | 11 |
ss | секунды с лидирующим нулем | 11 |
S | миллисекунды | 297 |
z | часовой пояс | EET |
Z | часовой пояс в формате RFC 822 | 300 |
Шаблон | Пример |
---|---|
dd-MM-YYYY | 01-11-2020 |
yyyy-MM-dd | 2019-10-01 |
HH:mm:ss.SSS | 23:59.59.999 |
yyyy-MM-dd HH:mm:ss | 2018-11-30 03:09:02 |
yyyy-MM-dd HH:mm:ss.SSS | 2016-03-01 01:20:47.999 |
yyyy-MM-dd HH:mm:ss.SSS Z | 2013-13-13 23:59:59.999 +0100 |
SimpleDateFormatjava string to dateSimpleDateFormat
-
Создаем строку, с которой нужно задать дату:
-
Создаем новый объект SimpleDateFormat с шаблоном, который совпадает с тем, что у нас в строке (иначе распарсить не получится):
Как вы видите, у нас тут появился аргумент Locale. Если же мы его опустим, он будет использовать значение Locale по умолчанию, которое не всегда является английским.
Если языковой стандарт не совпадает с входной строкой, то строковые данные, привязанные к языку, как у нас Mon или April, не будут распознаны и вызовут падение — java.text.ParseException, даже в том случае когда шаблон подходит.
Тем не менее, можно не указывать формат, если у нас используется шаблон, который не привязан к языку. Как пример — yyyy-MM-dd HH:mm:ss
-
Создаём дату с помощью форматтера, который в свою очередь парсит её из входной строки:
Вывод в консоль:
Хммм….Но формат-то уже не тот!
Чтобы сделать тот же формат, вновь используем форматтер:
Вывод в консоль:
The Date Object
The object is a built-in object in JavaScript that stores the date and time. It provides a number of built-in methods for formatting and managing that data.
By default, a new instance without arguments provided creates an object corresponding to the current date and time. This will be created according to the current computer’s system settings.
To demonstrate JavaScript’s , let’s create a variable and assign the current date to it. This article is being written on Wednesday, October 18th in London (GMT), so that is the current date, time, and timezone that is represented below.
now.js
Looking at the output, we have a date string containing the following:
Day of the Week | Month | Day | Year | Hour | Minute | Second | Timezone |
---|---|---|---|---|---|---|---|
Wed | Oct | 18 | 2017 | 12 | 41 | 34 | GMT+0000 (UTC) |
The date and time is broken up and printed in a way that we can understand as humans.
JavaScript, however, understands the date based on a timestamp derived from , which is a value consisting of the number of milliseconds that have passed since midnight on January 1st, 1970. We can get the timestamp with the method.
The large number that appears in our output for the current timestamp represents the same value as above, October 18th, 2017.
Epoch time, also referred to as zero time, is represented by the date string , and by the timestamp. We can test this in the browser by creating a new variable and assigning to it a new instance based on a timestamp of .
epoch.js
Epoch time was chosen as a standard for computers to measure time by in earlier days of programming, and it is the method that JavaScript uses. It is important to understand the concept of both the timestamp and the date string, as both may be used depending on the settings and purpose of an application.
So far, we learned how to create a new instance based on the current time, and how to create one based on a timestamp. In total, there are four formats by which you can create a new in JavaScript. In addition to the current time default and timestamp, you can also use a date string, or specify particular dates and times.
Date Creation | Output |
---|---|
Current date and time | |
Creates date based on milliseconds since Epoch time | |
Creates date based on date string | |
Creates date based on specified date and time |
To demonstrate the different ways to refer to a specific date, we’ll create new objects that will represent July 4th, 1776 at 12:30pm GMT in three different ways.
usa.js
The three examples above all create a date containing the same information.
You’ll notice the timestamp method has a negative number; any date prior to Epoch time will be represented as a negative number.
In the date and time method, our seconds and milliseconds are set to . If any number is missing from the creation, it will default to . However, the order cannot be changed, so keep that in mind if you decide to leave off a number. You may also notice that the month of July is represented by , not the usual . This is because the date and time numbers start from , as most counting in programming does. See the next section for a more detailed chart.
Преобразование формата даты и времени в 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-го года