ICStudio
Services
PortfolioCase Studies
Tools
DemoBlog
ICStudio
HomeThe IC Studio Morning PostLocal time format in Carbon
Back to Morning Post

Local time format in Carbon

For those who don't have time to keep up with all the innovations that appear in the beautiful Carbon library, we will share the most painful moment that pisses off the developers, namely the display of the time in localized form, such as December 9, 2021. A developer who doesn't particularly follow innovations in both PHP and Carbon might offer an option:

Published: 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

Share:

Want to work with us?

Let's discuss your project and find the best solution

Contact us
ICStudio

Professional web development and IT solutions for business

Quick Links

  • Home
  • Portfolio
  • Case Studies
  • Blog
  • Team

Resources

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

Services

  • Web Development
  • E-commerce
  • CRM
  • Support

Contacts

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

© 2026 IC Studio. All rights reserved.

Privacy PolicyTerms of ServiceService Terms