Date.prototype.toLocaleTimeString()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
ÐеÑод toLocaleTimeString() ÑкземплÑÑов Date возвÑаÑÐ°ÐµÑ ÑÑÑокÑ, ÑодеÑжаÑÑÑ Ð·Ð°Ð²Ð¸Ñимое Ð¾Ñ ÑзÑка пÑедÑÑавление вÑемени ÑÑой даÑÑ Ð² локалÑном ÑаÑовом поÑÑе. Ð ÑеализаÑиÑÑ
, поддеÑживаÑÑиÑ
Intl.DateTimeFormat API, ÑÑÐ¾Ñ Ð¼ÐµÑод пÑоÑÑо вÑзÑÐ²Ð°ÐµÑ Intl.DateTimeFormat.
ÐÑи каждом вÑзове toLocaleTimeString пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ð¸Ñк по болÑÑой базе локализованнÑÑ
ÑÑÑок, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÑÑÑекÑивнÑм. Ðогда меÑод вÑзÑваеÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ Ñаз Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñми паÑамеÑÑами, лÑÑÑе ÑоздаÑÑ Ð¾Ð±ÑÐµÐºÑ Intl.DateTimeFormat и иÑполÑзоваÑÑ ÐµÐ³Ð¾ меÑод format(), поÑÐ¾Ð¼Ñ ÑÑо обÑÐµÐºÑ DateTimeFormat Ð·Ð°Ð¿Ð¾Ð¼Ð¸Ð½Ð°ÐµÑ Ð¿ÐµÑеданнÑе ÐµÐ¼Ñ Ð¿Ð°ÑамеÑÑÑ Ð¸ Ð¼Ð¾Ð¶ÐµÑ ÐºÐµÑиÑоваÑÑ Ð´Ð°Ð½Ð½Ñе, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÑледÑÑÑие вÑÐ·Ð¾Ð²Ñ format могли вÑполнÑÑÑ Ð¿Ð¾Ð¸Ñк Ñ Ð±Ð¾Ð»ÐµÐµ опÑеделÑннÑм конÑекÑÑом.
ÐнÑеÑакÑивнÑй пÑимеÑ
// Depending on timezone, your results will vary
const event = new Date("August 19, 1975 23:15:30 GMT+00:00");
console.log(event.toLocaleTimeString("en-US"));
// Expected output: "1:15:30 AM"
console.log(event.toLocaleTimeString("it-IT"));
// Expected output: "01:15:30"
console.log(event.toLocaleTimeString("ar-EG"));
// Expected output: "١٢:١٥:٣٠ص"
СинÑакÑиÑ
toLocaleTimeString()
toLocaleTimeString(locales)
toLocaleTimeString(locales, options)
ÐаÑамеÑÑÑ
ÐаÑамеÑÑÑ locales и options изменÑÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ ÑÑнкÑии и позволÑÑÑ Ð¿ÑиложениÑм опÑеделÑÑÑ ÑзÑк, пÑавила ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾ÑоÑого, ÑледÑÐµÑ Ð¸ÑполÑзоваÑÑ.
Ð ÑеализаÑиÑÑ
, поддеÑживаÑÑиÑ
Intl.DateTimeFormat API, ÑÑи паÑамеÑÑÑ ÑооÑвеÑÑÑвÑÑÑ Ð¿Ð°ÑамеÑÑам конÑÑÑÑкÑоÑа Intl.DateTimeFormat(). РеализаÑии без поддеÑжки Intl.DateTimeFormat Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑ Ð¾Ð±Ð° паÑамеÑÑа, иÑполÑзÑÑ Ð»Ð¾ÐºÐ°Ð»Ñ Ð¸ ÑоÑÐ¼Ð°Ñ Ð²Ð¾Ð·Ð²ÑаÑаемой ÑÑÑоки опÑеделÑемÑе Ñамой ÑеализаÑией.
localesÐеобÑзаÑелÑнÑй-
СÑÑока Ñ ÑзÑковÑм Ñегом BCP 47 или маÑÑив ÑÐ°ÐºÐ¸Ñ ÑÑÑок. СооÑвеÑÑÑвÑÐµÑ Ð¿Ð°ÑамеÑÑÑ
localesконÑÑÑÑкÑоÑа `Intl.DateTimeFormat().Ð ÑеализаÑиÑÑ Ð±ÐµÐ· поддеÑжки
Intl.DateTimeFormatÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ Ð¸ обÑÑно иÑполÑзÑеÑÑÑ Ð»Ð¾ÐºÐ°Ð»Ñ ÑÑÑÑойÑÑва. optionsÐеобÑзаÑелÑнÑй-
ÐбÑÐµÐºÑ Ð¾Ð¿ÑеделÑÑÑий вÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÑоÑмаÑ. СооÑвеÑÑÑвÑÐµÑ Ð¿Ð°ÑамеÑÑÑ
optionsконÑÑÑÑкÑоÑаIntl.DateTimeFormat(). ÐпÑиÑtimeStyleдолжна бÑÑÑundefinedили бÑÐ´ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑÑTypeError. ÐÑлиweekday,year,monthиdayодновÑеменно ÑавнÑundefined, Ñоyear,monthиdayбÑдÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð²"numeric".Ð ÑеализаÑиÑÑ Ð±ÐµÐ· поддеÑжки
Intl.DateTimeFormatÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ.
СмоÑÑиÑе опиÑание конÑÑÑÑкÑоÑа Intl.DateTimeFormat() Ð´Ð»Ñ Ð¿Ð¾Ð´ÑобноÑÑей иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑиÑ
паÑамеÑÑов.
ÐозвÑаÑаемое знаÑение
СÑÑока, пÑедÑÑавлÑÑÑÐ°Ñ ÑаÑÑÑ Ñказанной даÑÑ Ð² ÑооÑвеÑÑÑвии Ñ ÑзÑковÑми ÑÑебованиÑми.
Ð ÑеализаÑиÑÑ
Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой Intl.DateTimeFormat ÑезÑлÑÑÐ°Ñ Ð±ÑÐ´ÐµÑ ÑквиваленÑнÑм new Intl.DateTimeFormat(locales, options).format(date).
ÐÑимеÑание:
РболÑÑинÑÑве ÑлÑÑаев ÑоÑмаÑиÑование, возвÑаÑаемое toLocaleString(), единообÑазно. Ðднако ÑезÑлÑÑÐ°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑазнÑм в завиÑимоÑÑи Ð¾Ñ Ð²Ñемени, ÑзÑка и ÑеализаÑии â ÑÑо допÑÑкаеÑÑÑ ÑпеÑиÑикаÑией. Ðе ÑледÑÐµÑ ÑÑавниваÑÑ ÑезÑлÑÑÐ°Ñ toLocaleTimeString() Ñо ÑÑаÑиÑеÑкими знаÑениÑми.
ÐÑимеÑÑ
>ÐÑполÑзование toLocaleTimeString()
ÐÑи иÑполÑзовании без ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸ возвÑаÑаеÑÑÑ ÑÑÑока, оÑÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ Ð² ÑооÑвеÑÑÑвии Ñ Ð»Ð¾ÐºÐ°Ð»ÑÑ Ð¸ опÑиÑми по ÑмолÑаниÑ.
const date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
// ÐÑвод toLocaleTimeString() без паÑамеÑÑов завиÑÐ¸Ñ Ð¾Ñ ÑеализаÑии,
// локали по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ ÑаÑового поÑÑа по ÑмолÑаниÑ
console.log(date.toLocaleTimeString());
// "7:00:00 PM", еÑли код запÑÑен Ñ Ð»Ð¾ÐºÐ°Ð»ÑÑ en-US и ÑаÑовÑм поÑÑом America/Los_Angeles
ÐÑовеÑка поддеÑжки паÑамеÑÑов locales и options
ÐаÑамеÑÑÑ locales и options могÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑÑÑ Ð½Ðµ во вÑеÑ
ÑеализаÑиÑÑ
. Ð ÑеализаÑиÑÑ
без поддеÑжки инÑеÑнаÑионализаÑии toLocaleTimeString() вÑегда иÑполÑзÑÐµÑ ÑиÑÑемнÑÑ Ð»Ð¾ÐºÐ°Ð»Ñ, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð½Ðµ Ñем, ÑÑо вам нÑжно. ÐоÑколÑÐºÑ Ð»ÑÐ±Ð°Ñ ÑеализаÑиÑ, поддеÑживаÑÑÐ°Ñ Ð¿Ð°ÑамеÑÑÑ locales и options, должна поддеÑживаÑÑ Intl API, пÑовеÑиÑÑ Ð½Ð°Ð»Ð¸Ñие поÑледней можно Ñаким ÑпоÑобом:
function toLocaleTimeStringSupportsLocales() {
return (
typeof Intl === "object" &&
!!Intl &&
typeof Intl.DateTimeFormat === "function"
);
}
ÐÑполÑзование паÑамеÑÑа locales
ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑе локализованнÑе ÑоÑмаÑÑ Ð²Ñемени. ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑоÑмаÑа ÑзÑка, иÑполÑзÑемого в полÑзоваÑелÑÑком инÑеÑÑейÑе ваÑего пÑиложениÑ, ÑбедиÑеÑÑ, ÑÑо Ð²Ñ Ñказали ÑÑÐ¾Ñ ÑзÑк (и, возможно, неÑколÑко запаÑнÑÑ
ÑзÑков) иÑполÑзÑÑ Ð¿Ð°ÑамеÑÑ locales:
const date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// ФоÑмаÑиÑование ниже пÑедполагаеÑ, ÑÑо меÑÑнÑй ÑаÑовой поÑÑ Ñавен
// America/Los_Angeles Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸ СШÐ
// РамеÑиканÑком английÑком иÑполÑзÑеÑÑÑ 12-ÑаÑовой ÑоÑÐ¼Ð°Ñ Ð²Ñемени
console.log(date.toLocaleTimeString("en-US"));
// "7:00:00 PM"
// РбÑиÑанÑком английÑком иÑполÑзÑеÑÑÑ 24-ÑаÑовой ÑоÑÐ¼Ð°Ñ Ð²Ñемени
console.log(date.toLocaleTimeString("en-GB"));
// "03:00:00"
// РкоÑейÑком иÑполÑзÑеÑÑÑ 12-ÑаÑовой ÑоÑÐ¼Ð°Ñ Ð²Ñемени
console.log(date.toLocaleTimeString("ko-KR"));
// "ì¤í 12:00:00"
// РболÑÑинÑÑве аÑабоÑзÑÑнÑÑ
ÑÑÑан иÑполÑзÑÑÑ Ð½Ð°ÑÑоÑÑие аÑабÑкие ÑиÑÑÑ
console.log(date.toLocaleTimeString("ar-EG"));
// "Ù§:Ù Ù :Ù Ù Ù
"
// ÐÑли запÑаÑиваемÑй ÑзÑк Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ поддеÑживаÑÑÑÑ, напÑимеÑ
// балийÑкий, оÑкаÑÑваемÑÑ Ð½Ð° запаÑной ÑзÑк, в данном ÑлÑÑае индонезийÑкий
console.log(date.toLocaleTimeString(["ban", "id"]));
// "11.00.00"
ÐÑполÑзование паÑамеÑÑа options
РезÑлÑÑаÑ, пÑедоÑÑавлÑемÑй меÑодом toLocaleTimeString(), Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ð°ÑÑÑоен Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ð°ÑамеÑÑа options:
const date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// ÐÑиложение Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ñ
оÑеÑÑ Ð¸ÑполÑзоваÑÑ UTC и показаÑÑ ÑÑо
const options = { timeZone: "UTC", timeZoneName: "short" };
console.log(date.toLocaleTimeString("en-US", options));
// "3:00:00 AM GMT"
// Ðногда даже в СШРнÑжен 24-Ñ
ÑаÑовой ÑоÑÐ¼Ð°Ñ Ð²Ñемени
console.log(date.toLocaleTimeString("en-US", { hour12: false }));
// "19:00:00"
// ÐÑобÑажение ÑолÑко ÑаÑов и минÑÑ, иÑполÑзÑем Ð»Ð¾ÐºÐ°Ð»Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ (пÑÑÑÑ Ð¼Ð°ÑÑив)
console.log(
date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }),
);
// "20:01"
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-date.prototype.tolocaletimestring> |
| ECMAScript® 2027 Internationalization API Specification> # sup-date.prototype.tolocaletimestring> |