rakeshrai / laravel-nepali-date-converter
Laravel Nepali Date Converter is a package to convert English (AD) dates to Nepali (BS)
Package info
github.com/myselfrakeshrai/laravel-nepali-date
pkg:composer/rakeshrai/laravel-nepali-date-converter
dev-main
2026-04-20 08:37 UTC
Requires
- php: ^8.0
- illuminate/support: ^9.0|^10.0|^11.0|^12.0|^13.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
This package is auto-updated.
Last update: 2026-04-25 13:31:38 UTC
README
Author: Rakesh Rai
Convert English (AD) dates to Nepali (BS) in Laravel.
Features
- AD -> BS converter class
bs_date()helperLaravelNepaliDatefacade@bs($date)Blade directive- Optional middleware to auto-convert AD date text in HTML responses
Installation
composer require rakeshrai/laravel-nepali-date-converter
Publish config
php artisan vendor:publish --tag=nepali-date-config
What To Do (Quick Start)
- Install the package:
composer require rakeshrai/laravel-nepali-date-converter
- Publish config:
php artisan vendor:publish --tag=nepali-date-config
- Pick one preferred preset format:
bs_label_fullbs_label_full_nepdaybs_label_devanagaribs_label_compactbs_label_compact_timebs_datetime_numeric
- Start using helper in Blade/controller:
bs_date(now(), 'bs_label_compact');
- If you already use old names (
bs_label_simp,bs_time,nepalilang, etc.), no immediate changes are required. Legacy aliases still work.
Usage
Helper
bs_date('2026-04-20'); // 2083-01-07 bs_date(now(), 'Y/m/d'); // preferred preset labels bs_date('2026-04-20 15:45:00', 'bs_label_full'); // monday 7, Baishak 2083 bs_date('2026-04-20 15:45:00', 'bs_label_full_nepday'); // sombar 7, Baishak 2083 bs_date('2026-04-20 15:45:00', 'bs_label_devanagari'); // सोमबार ७, बैशाख २०८३ bs_date('2026-04-20 15:45:00', 'bs_label_compact'); // 7, Baishak 2083 bs_date('2026-04-20 15:45:00', 'bs_label_compact_time'); // 7, Baishak 2083 03:45 PM bs_date('2026-04-20 15:45:00', 'bs_datetime_numeric'); // 07-01-2083 03:45 PM
Supported preset formats (preferred)
bs_label_full=>sunday 12, Baishak 2083bs_label_full_nepday=>sombar 12, Baishak 2083bs_label_devanagari=>सोमबार १२, बैशाख २०८३bs_label_compact=>12, Baishak 2083bs_label_compact_time=>12, Baishak 2083 hh:mm AMbs_datetime_numeric=>12-01-2083 hh:mm AM
Legacy aliases (still supported)
bs_label=> alias ofbs_label_fullbs_label_nepday=> alias ofbs_label_full_nepdaynepalilang=> alias ofbs_label_devanagaribs_label_simp=> alias ofbs_label_compactbs_label_time=> alias ofbs_label_compact_timebs_time=> alias ofbs_datetime_numeric
Custom format tokens
- BS date:
Y,y,m,n,d,j,F - AD time/day passthrough:
l,H,h,i,s,A
Facade
use LaravelNepaliDate; LaravelNepaliDate::toString('2026-04-20'); LaravelNepaliDate::from('2026-04-20'); // [ // 'year' => 2083, // 'month' => 1, // 'day' => 7, // 'month_name' => 'Baishak', // 'week_day' => 'monday', // 'time' => '12:00 AM', // 'formatted' => '2083-01-07', // ]
Blade
@bs($user->created_at)
Auto-convert AD date strings in HTML output
In config/nepali-date.php:
'auto_convert_response_dates' => true,
This scans rendered HTML and converts patterns like:
2026-04-202026/04/202026.04.20
If you do not want global auto registration in web group:
'auto_register_web_middleware' => false,
Then register manually in your app:
// app/Http/Kernel.php protected $middlewareAliases = [ // ... 'auto.bs.date' => \RakeshRai\LaravelNepaliDate\Http\Middleware\AutoConvertAdDatesToBs::class, ];
Supported range
- Minimum AD:
1943-04-14 - Maximum depends on packaged BS data table (currently through BS 2099 data)
Notes
- Auto conversion is text pattern based. For precise control, prefer
bs_date()or@bs(...)in Blade. - For APIs/JSON, use explicit conversion in transformers/resources.