PHPackages                             naybala/laravel-mm-calendar - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. naybala/laravel-mm-calendar

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

naybala/laravel-mm-calendar
===========================

Myanmar Calendar Package for Laravel

02↑2900%PHP

Since Jun 7Pushed 2d agoCompare

[ Source](https://github.com/naybala/laravel-mm-calendar)[ Packagist](https://packagist.org/packages/naybala/laravel-mm-calendar)[ RSS](/packages/naybala-laravel-mm-calendar/feed)WikiDiscussions main Synced 2d ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel MM Calendar
===================

[](#laravel-mm-calendar)

A simple and elegant Laravel package for converting Gregorian dates to **Myanmar Calendar** data.

---

Requirements
------------

[](#requirements)

DependencyVersionPHP`^8.1`Laravel`^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0 | ^13.0`Carbon`^2.0 | ^3.0`---

Installation
------------

[](#installation)

### Step 1 — Install via Composer

[](#step-1--install-via-composer)

```
composer require naybala/laravel-mm-calendar:dev-main
```

---

### Step 2 — Service Provider (Auto-Discovery)

[](#step-2--service-provider-auto-discovery)

Laravel **8.x and above** support package auto-discovery. The service provider and facade alias are registered automatically — **no further action is needed**.

If auto-discovery is disabled in your project (i.e. the package is listed under `dont-discover` in `composer.json`), register manually in `config/app.php`:

```
'providers' => [
    // ...
    Naybala\MMCalendar\MMCalendarServiceProvider::class,
],

'aliases' => [
    // ...
    'MMCalendar' => Naybala\MMCalendar\Facades\MMCalendar::class,
],
```

---

### Step 3 — Publish Calendar Data (Optional)

[](#step-3--publish-calendar-data-optional)

The package ships with pre-built calendar data for supported years. If you want to customize or extend the data files, publish them to your application:

```
php artisan vendor:publish --tag=mm-calendar-data
```

This copies the JSON calendar files to `resources/mm-calendar/` in your project. The package will automatically use your local copies if they exist.

---

Basic Usage
-----------

[](#basic-usage)

### Via Facade

[](#via-facade)

```
use Naybala\MMCalendar\Facades\MMCalendar;

// Single date — returns MMCalendarResult (or null if not found)
$day = MMCalendar::fromGregorian('2026-06-07');

// Today
$today = MMCalendar::today();

// Carbon instance
$day = MMCalendar::fromGregorian(Carbon::parse('2026-06-07'));

// Low-level alias
$day = MMCalendar::get('2026-06-07');
```

### Via Dependency Injection

[](#via-dependency-injection)

```
use Naybala\MMCalendar\MMCalendar;

class MyController extends Controller
{
    public function __construct(protected MMCalendar $calendar) {}

    public function index()
    {
        return $this->calendar->today()->toArray();
    }
}
```

### Via App Container

[](#via-app-container)

```
$day = app('mm-calendar')->get('2026-06-07');
```

---

Batch / Array Lookup
--------------------

[](#batch--array-lookup)

Pass an array of dates to get results keyed by date string:

```
$days = MMCalendar::fromGregorian(['2026-06-07', '2026-06-08']);

// => [
//      '2026-06-07' => MMCalendarResult,
//      '2026-06-08' => MMCalendarResult,
//    ]

$days['2026-06-07']->toMm();   // "နယုန်"
$days['2026-06-08']->toEn();   // "Nayon"
```

---

MMCalendarResult Methods
------------------------

[](#mmcalendarresult-methods)

Every single-date lookup returns an `MMCalendarResult` object.

### Raw Field Getters

[](#raw-field-getters)

```
$day = MMCalendar::fromGregorian('2026-06-07');

$day->mmYear();   // 1388  (Myanmar Era year)
$day->mmMonth();  // 3     (month number)
$day->mmDay();    // 7     (day of month)
$day->mmIndex();  // sequential day index
```

### Month Names

[](#month-names)

```
$day->toMm();              // "နယုန်"     (Myanmar script)
$day->toEn();              // "Nayon"     (English transliteration)
$day->monthName();         // "နယုန်"     (default: Myanmar)
$day->monthName('en');     // "Nayon"
```

### Myanmar Numerals

[](#myanmar-numerals)

```
$day->toMmNumerals(1388);  // "၁၃၈၈"
$day->toMmNumerals(7);     // "၇"
```

### Formatted Labels

[](#formatted-labels)

```
$day->label();    // "၁၃၈၈ ခုနှစ်၊ နယုန်လ ၇ ရက်"
$day->labelEn();  // "7 Nayon 1388"
```

### Custom Format

[](#custom-format)

Use `{token}` placeholders:

TokenOutput`{year}``1388``{month}``3``{day}``7``{month_mm}``နယုန်``{month_en}``Nayon``{year_mm}``၁၃၈၈``{month_mm_num}``၃``{day_mm}``၇````
$day->format('{year} ခုနှစ်၊ {month_mm}လ {day} ရက်');
// => "1388 ခုနှစ်၊ နယုန်လ 7 ရက်"

$day->format('{year_mm} ခုနှစ်၊ {month_mm}လ {day_mm} ရက်');
// => "၁၃၈၈ ခုနှစ်၊ နယုန်လ ၇ ရက်"

$day->format('{day} {month_en} {year}');
// => "7 Nayon 1388"
```

### Raw Array

[](#raw-array)

```
$day->toArray();
// => ['mm_year' => 1388, 'mm_month' => 3, 'mm_day' => 7, 'mm_index' => 16811]
```

### Property &amp; Array Access (Backward Compatible)

[](#property--array-access-backward-compatible)

```
$day->mm_year;      // 1388
$day['mm_month'];   // 3
```

---

Myanmar Month Reference
-----------------------

[](#myanmar-month-reference)

\#MyanmarEnglish1တန်ခူးTagu2ကဆုန်Kason3နယုန်Nayon4ဝါဆိုWaso5ဝါခေါင်Wagaung6တော်သလင်းTawthalin7သီတင်းကျွတ်Thadingyut8တန်ဆောင်မုန်းTazaungmon9နတ်တော်Nadaw10ပြာသိုPyatho11တပို့တွဲTabodwe12တပေါင်းTabaung---

Error Handling
--------------

[](#error-handling)

A `RuntimeException` is thrown when a calendar data file for the requested year does not exist:

```
try {
    $day = MMCalendar::fromGregorian('2030-01-01');
} catch (RuntimeException $e) {
    // "Myanmar calendar data for year 2030 is not available."
    logger()->warning($e->getMessage());
}
```

---

Adding Calendar Data
--------------------

[](#adding-calendar-data)

Calendar data is stored as JSON files in `resources/calendars/{year}_calendar.json`.

Each file is a JSON object keyed by Gregorian date:

```
{
  "2026-01-01": {
    "mm_year": 1387,
    "mm_month": 10,
    "mm_day": 14,
    "mm_index": 16654
  },
  "2026-01-02": {
    "mm_year": 1387,
    "mm_month": 10,
    "mm_day": 15,
    "mm_index": 16654
  }
}
```

To support a new year, add the corresponding `{year}_calendar.json` to the `resources/calendars/` directory.

---

License
-------

[](#license)

Open-sourced under the [MIT license](https://opensource.org/licenses/MIT).

---

Author
------

[](#author)

**Naybala** — Myanmar Calendar Package for Laravel

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance65

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/61843418?v=4)[Nay Ba La](/maintainers/NayBaLa)[@naybala](https://github.com/naybala)

---

Top Contributors

[![naybala](https://avatars.githubusercontent.com/u/61843418?v=4)](https://github.com/naybala "naybala (5 commits)")

### Embed Badge

![Health badge](/badges/naybala-laravel-mm-calendar/health.svg)

```
[![Health](https://phpackages.com/badges/naybala-laravel-mm-calendar/health.svg)](https://phpackages.com/packages/naybala-laravel-mm-calendar)
```

###  Alternatives

[mmikkel/cp-field-inspect

Inspect field handles and easily edit field and element source settings

29541.1k14](/packages/mmikkel-cp-field-inspect)[bagusindrayana/laravel-coordinate

get nearby location from eloquent laravel

3020.4k](/packages/bagusindrayana-laravel-coordinate)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
