ICStudio
Послуги
ПортфоліоКейси
Інструменти
ДемоБлог
ICStudio
ГоловнаБлогЛокальний формат часу в Carbon

Локальний формат часу в Carbon

Для тих, хто не встигає стежити за всіма нововведеннями, які з'являються в прекрасній бібліотеці Carbon, ми поділимося найболючішим моментом, який дратує розробників, а саме виведення часу в локалізованому вигляді, наприклад, 9 грудня 2021 року. Розробник, який не особливо стежить за нововведеннями як у PHP, так і в Carbon, може запропонувати варіант:

Опубліковано: 12/8/2021

Для тих, хто не встигає стежити за всіма нововведеннями, які з'являються в прекрасній бібліотеці Carbon, ми поділимося найболючішим моментом, який дратує розробників, а саме виведення часу в локалізованому вигляді, наприклад, 9 грудня 2021 року.

Розробник, який не особливо стежить за нововведеннями як у PHP, так і в Carbon, може запропонувати варіант:

php
$current_russian_time = Carbon::now()->locale('ru')->format('j F Y г.');

Однак, смію вас запевнити, що отримаєте Ви приблизно це: 9 December 2021 г.. Справа в тому, що розробники Carbon змінили підхід до поняття локалізації, перейшовши на ISO формати. Щоб отримати локазований вид дати/часу/дня тижня, потрібно використовувати такий код:

php
Carbon::setLocale('ru');
	$current_russian_time = Carbon::now()->isoFormat('D MMMM Y г.');

Отримуємо бажаний результат: 9 грудня 2021 г.

Використання Carbon::setLocale('ru'); дозволяє використовувати зовнішні ключі для передачі поточної локалі один раз для всіх тимчасових міток. В іншому випадку довелося б писати постійно: Carbon::now()->locale('ru')->isoFormat('D MMMM Y г.');

Введення в Carbon 2.x isoFormat дозволило робити цікаві дива з датою та часом, наприклад такі:

php
$date = Carbon::parse('2018-03-16')->locale('uk');
echo $date->getTranslatedDayName('[в] dddd'); // п’ятницю
// By providing a context, we're saying translate day name like in a format such as [в] dddd
// So the context itself has to be translated first consistently.
echo "\n";
echo $date->getTranslatedDayName('[наступної] dddd'); // п’ятниці
echo "\n";
echo $date->getTranslatedDayName('dddd, MMM'); // п’ятниця
echo "\n";
// The same goes for short/minified variants:
echo $date->getTranslatedShortDayName('[наступної] dd'); // пт
echo "\n";
echo $date->getTranslatedMinDayName('[наступної] ddd'); // пт
echo "\n";

// And the same goes for months
$date->locale('ru');
echo $date->getTranslatedMonthName('Do MMMM'); // марта
echo "\n";
echo $date->getTranslatedMonthName('MMMM YYYY'); // март
echo "\n";
// Short variant
echo $date->getTranslatedShortMonthName('Do MMM'); // мар
echo "\n";
echo $date->getTranslatedShortMonthName('MMM YYYY'); // мар
echo "\n";

// And so you can force a different context to get those variants:
echo $date->isoFormat('Do MMMM');        // 16-го березня
echo "\n";
echo $date->isoFormat('MMMM YYYY');      // березень 2018
echo "\n";
echo $date->isoFormat('Do MMMM', 'MMMM YYYY'); // 16-го березня
echo "\n";
echo $date->isoFormat('MMMM YYYY', 'Do MMMM'); // березня 2018
echo "\n";

Більш детально ознайомитись з фішками локалізації можна на оф. сторінці бібліотеки https://carbon.nesbot.com/docs/#api-localization

Поділитися:

Хочете працювати з нами?

Обговоримо ваш проект та знайдемо найкраще рішення

Зв'язатися з нами

Схожі статті

10/16/2024

Чому October CMS - ідеальний вибір для розробки сайту та CRM системи компанії з нестандартними бізнес процесами

10/14/2024

Безпека онлайн-платежів: Як забезпечити захист даних клієнтів у вашому проєкті на Laravel?

5/17/2023

Програмне забезпечення для ломбардів: переваги, функції, вимоги

ICStudio

Професійна веб-розробка та IT-рішення для бізнесу

Швидкі посилання

  • Головна
  • Портфоліо
  • Кейси
  • Блог
  • Команда

Resources

  • Tools
  • AI Chatbots
  • Demo
  • Docs
  • Pilot Program
  • Hire Us

Послуги

  • Web Development
  • E-commerce
  • CRM
  • Support

Контакти

  • hello@icstudio.online
  • +38 099 123 45 67
  • Kyiv, Ukraine

© 2026 IC Studio. Всі права захищені.

Політика конфіденційностіУмови використанняService Terms