• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Timezones Got You Down? Build a Laravel Converter That Just Works

Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
The Problem We All Face


⏰ Your user in Tokyo picks 2 PM → New York sees 1 AM ?

? Calendar exports show wrong times

? DST changes break everything

Here’s how I built a converter that handles all this – and how you can clone it.

Step 1: Steal My Base Code


git clone

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Why start from scratch? This includes:

  • Pre-built service class
  • Working demo UI
  • Passing tests (mostly ?)
Step 2: The Magic Methods


Convert Anywhere → UTC


// Static call (no user context)
$utcTime = UserTimeZoneHandler::toUtc(
'2023-01-01 14:00',
'Asia/Tokyo'
);

User-Friendly Instance Mode


// In controller
$handler = new UserTimeZoneHandler($user->timezone);

// All conversions use the user’s zone
$localTime = $handler->toUserTimeZone($event->start_time);
Step 3: Avoid My Carbon Mistake


I wasted hours on this failed test:


public function testGoogleFormatting() {
$time = Carbon::parse(...); // Fails!
}

Why? Laravel extends Carbon. Always use:


use Illuminate\Support\Carbon; // Not Carbon\Carbon!
Step 4: Add Your Secret Sauce

  1. New Calendar Provider?

// Add to formatForProvider()
'zoom' => $utcTime->format('Ymd\THis\Z')
  1. Custom Time Ranges

$converted = UserTimeZoneHandler::convertTimeRanges(
$businessHours,
'America/Chicago',
'Europe/Paris'
);
Step 5: Launch Your Demo


php artisan serve

Visit

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

to see:


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Why This Works

  • ✅ Handles 597 timezones (including weird ones like Australia/Lord_Howe)
  • ✅ Tests cover DST/edge cases
  • ✅ No hidden dependencies

Clone & Customize:


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.




Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу