Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Timezone Laravel Package

camroncade/timezone

Laravel package for working with timezones. It provides curated timezone identifier lists, select-menu helpers, and validation support, making it easy to build timezone pickers and user settings without maintaining your own arrays. Includes offset helpers for timezone-aware forms.

Deep Wiki
Context7

Product Decisions This Supports

  • User profile & localization settings: powering a "Your timezone" dropdown in account settings — the most common surface where timezone choice becomes a product requirement.
  • Scheduling and notification features: enabling users to pick the zone in which meeting times, digests, reminders, or business hours are displayed and interpreted.
  • Onboarding localization: reducing drop-off by presenting a sane, searchable list of PHP's supported identifiers rather than a free-text field that generates invalid data downstream.
  • Build vs. buy triage: this package is a thin wrapper over DateTimeZone::listIdentifiers() plus Blade/HTML helpers. The realistic "buy" cost is a single Composer dependency; the realistic "build" cost is roughly 30–60 lines of code you fully control. That asymmetry is the core decision this package forces.
  • Roadmap signal, not a roadmap item: at 159 stars and a last release of April 2019, treating it as a strategic dependency is unwise; treating it as a specification of a feature you already need is useful. Use it to shortcut discovery ("what should the selector do?") while planning to own the implementation.
  • Scope discipline: the package deliberately does not handle conversion, DST edge cases, storage format, or display formatting. That boundary tells you the surrounding work (persisting an IANA identifier, converting with Carbon, rendering in the viewer's zone) is yours regardless — so budget for it in the same epic.

When to Consider This Package

Consider it when all of the following hold:

  • You are on a Laravel version the package's 2019-era service provider and facade still boot against (verify explicitly — Laravel 6+ auto-discovery and PHP 8 type behavior are real breakage risks).
  • You need only a form control: a select of IANA identifiers with a pre-selected default and customizable attributes.
  • You want the list rendered server-side in Blade with minimal front-end work, and you are comfortable accepting an unmaintained dependency in composer.json.
  • The alternative (a live, maintained UI library or a JS timezone picker like moment-timezone/Intl-based components) is overkill for your current scope.

Look elsewhere — or write it yourself — when:

  • Maintenance matters: no release since 2019 means no security patches, no Laravel major-version guarantees, and no one to escalate to. For a package this small, an abandoned dependency is pure liability with no compensating benefit.
  • You need searchable/typeahead selection at scale (~400+ identifiers is a poor UX as a plain <select> for a global consumer audience).
  • You need grouping by region, offset display, "detect my timezone" (JS Intl.DateTimeFormat().resolvedOptions().timeZone), or DST-aware labels — none of which are in scope here.
  • You already have a design-system component for selects; hand-rolling the options array is a ten-line function and keeps the UI consistent.
  • You are targeting PHP 8.1+ / Laravel 10+ and want a dependency that passes your automated compatibility checks rather than an exception in your allowlist.

How to Pitch It (Stakeholders)

For executives (one paragraph): Timezone selection is a small but user-visible piece of our accounts and scheduling experience, and getting it wrong produces support tickets and mis-scheduled notifications. This package offers a ready-made dropdown in about a day of integration, but it was last released in 2019 and is effectively unmaintained — meaning we'd inherit a dependency nobody will fix if it breaks on a future framework upgrade. Because the underlying functionality is a thin wrapper over a built-in PHP feature, my recommendation is to borrow the design, not the dependency: implement the selector in-house (~1 day of engineering), keep the UX benefits, and avoid a stale third-party package in our supply chain.

For engineering (the ask): Spike the package (30 minutes) to confirm whether it boots on our Laravel/PHP target. Default position is to replicate its API surface — a helper returning DateTimeZone::listIdentifiers() keyed for a Blade select, with a default and pass-through attributes — as a small internal utility with tests. Adopt the package outright only if the spike passes cleanly and we agree to pin the version and accept ownership of any future breakage.

Risk summary: low technical complexity, low integration cost, moderate supply-chain risk. Low effort does not mean low obligation — an unmaintained dependency is still a dependency.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console