Header Ads

Header ADS

Laravel carbon vs php date and time

 Carbon হচ্ছে PHP (বিশেষ করে Laravel)-এর জন্য একটি জনপ্রিয় তারিখ এবং সময় ব্যবস্থাপনা লাইব্রেরি, যেটা মূলত PHP-এর DateTime ক্লাসকে সহজভাবে ব্যবহার করার জন্য তৈরি করা হয়েছে।

Laravel-এ আমরা সাধারণত Carbon ব্যবহার করি কারণ Laravel নিজেই Carbon কে default date/time handler হিসেবে ব্যবহার করে, বিশেষ করে Eloquent Model গুলোতে।


🔍 কেন Carbon ব্যবহার করি? (যখন PHP-র date() বা time() দিয়েও তারিখ/সময় পাওয়া যায়?)

PHP-এর native function (যেমন: date(), time()) দিয়েও কাজ করা যায়, কিন্তু সেগুলো একটু জটিল এবং Flexible না। Carbon সেগুলোকে অনেক সহজ এবং readable করে তোলে।


✅ Carbon এর সুবিধাগুলো (PHP date/time এর তুলনায়):

1. Readable এবং Easy Syntax


use Carbon\Carbon; echo Carbon::now(); // বর্তমান সময় echo Carbon::now()->toDateString(); // 2025-05-04 echo Carbon::now()->addDays(5); // ৫ দিন পরের সময়

2. Manipulation খুব সহজ


Carbon::now()->subYear(); // এক বছর আগের সময় Carbon::now()->addHours(3); // ৩ ঘন্টা পর Carbon::parse('2025-05-01')->diffForHumans(); // "3 days ago"

3. Laravel Eloquent এর সাথে Built-in Integration

Model এ created_at বা updated_at গুলো Carbon instance হিসেবেই কাজ করে।


$post = Post::find(1); echo $post->created_at->diffForHumans(); // "2 hours ago"

4. Localization (বাংলা সহ বহু ভাষায় সময় প্রকাশ)


Carbon::now()->locale('bn')->diffForHumans(); // "১ মিনিট আগে"

5. Time Zone Handling


Carbon::now('Asia/Dhaka'); // ঢাকার সময় অনুযায়ী

📌 সংক্ষেপে:

কাজPHP NativeCarbon
বর্তমান সময়date('Y-m-d')Carbon::now()->toDateString()
৭ দিন যোগজটিলCarbon::now()->addDays(7)
মানুষের ভাষায় সময়কষ্টকরdiffForHumans()
সময় অঞ্চলআলাদা করে handle করতে হয়Carbon এ built-in

Laravel এ Carbon ব্যবহার করার মূল কারণ:
Carbon খুব সহজে date/time manage করতে দেয়, readable হয়, flexible হয়, এবং Laravel এর সাথে সুন্দরভাবে মিলে যায়।




Laravel controller এবং Blade view-তে Carbon ব্যবহার করে তারিখ দেখানো হয়েছে।


Controller উদাহরণ:


// app/Http/Controllers/DemoController.php namespace App\Http\Controllers; use Illuminate\Http\Request; use Carbon\Carbon; class DemoController extends Controller { public function showDate() { $today = Carbon::now(); $sevenDaysLater = Carbon::now()->addDays(7); $humanReadable = Carbon::now()->subMinutes(10)->diffForHumans(); // 10 মিনিট আগে return view('demo.date', compact('today', 'sevenDaysLater', 'humanReadable')); } }

Route:

// routes/web.php Route::get('/show-date', [DemoController::class, 'showDate']);

Blade View:

blade

<!-- resources/views/demo/date.blade.php --> <!DOCTYPE html> <html> <head> <title>Carbon Date Demo</title> </head> <body> <h2>আজকের তারিখ:</h2> <p>{{ $today->toDateTimeString() }}</p> <h2>৭ দিন পরের তারিখ:</h2> <p>{{ $sevenDaysLater->toFormattedDateString() }}</p> <h2>মানব-পাঠযোগ্য ফরম্যাটে:</h2> <p>{{ $humanReadable }}</p> </body> </html>

🟢 ব্রাউজারে /show-date এ গেলে তুমি পাবে:

  • আজকের তারিখ ও সময়

  • ৭ দিন পরের তারিখ

  • "১০ মিনিট আগে" এর মত একটা মানব-পাঠযোগ্য সময়

No comments

Theme images by fpm. Powered by Blogger.