akr4m/bangla-datetime-format

Extended DateTime Class For Bangla Date and Time

2.0.2 2022-12-03 12:28 UTC

This package is auto-updated.

Last update: 2024-10-30 02:21:32 UTC


README

Build Status HHVM Status Coverage Status Scrutinizer Code Quality Latest Stable Version Total Downloads

Utility Library to Display Bangla Date and Time.

Key Features

  • Easy to use
  • Works same as php native DateTime Class
  • Support almost all format option like DateTime class
  • Can customize the start of day hour by setting morning option(for BnDateTime)
  • Can be used to convert English-Bangla-English date format

Synopsis

<?php
use BanglaDatetimeFormat\Types\BnDateTime;
use BanglaDatetimeFormat\Types\DateTime as EnDateTime;

require 'autoload.php'

$bongabda = new BnDateTime('2016-04-22 05:26:47 pm', new DateTimeZone('Asia/Dhaka'));
$bongabda->setDate(1398, 1, 1);

echo $bongabda->format('l jS F Y b h:i:s') . PHP_EOL ;
echo $bongabda->enFormat('l jS F Y h:i:s a') . PHP_EOL;
echo $bongabda->getDateTime()->format('l jS F Y b h:i:s'). PHP_EOL;
echo $bongabda->getDateTime()->enFormat('l jS F Y h:i:s A') . PHP_EOL;

Output

Installation/Usage

If you're using Composer to manage dependencies, you can include the following in your composer.json file:

"require": {
    "ronisaha/easy-bangla-date": "dev-master"
}

Then, after running composer update or php composer.phar update, you can load the class using Composer's autoloading:

require 'vendor/autoload.php';

Otherwise, you can simply require the given autoload.php file:

require_once 'PATH_TO_LIBRARY/autoload.php';

And in either case, I'd suggest using an alias for BanglaDatetimeFormat\Types\DateTime Class to distinguish between native DateTime Class.

use BanglaDatetimeFormat\Types\DateTime as EnDateTime;

Methods/Features

Both BanglaDatetimeFormat\Types\DateTime and BanglaDatetimeFormat\Types\BnDateTime has the member functions as native DateTime class.

DateTime
  • you can use enFormat function to get output in english.
BnDateTime
  • BanglaDatetimeFormat\Types\BnDateTime got extra method setMorning to define a hour for start of day. By default day start at 6.
  • Along with all format options of native DateTime class, we have extra option b which will print ('ভোর', 'সকাল', 'দুপুর', 'বিকাল', 'সন্ধ্যা', 'রাত')
  • Use setDate($year, $month, $day) to set bengali date
  • getDateTime method will return object of BanglaDatetimeFormat\Types\DateTime for current object.

Cookbook

English date in Bangla
<?php
use BanglaDatetimeFormat\Types\DateTime;

require 'autoload.php'

$date = new DateTime('now', new DateTimeZone('Asia/Dhaka'));

echo $date->format('l jS F Y b h:i:s');
Native format functionality
<?php
use BanglaDatetimeFormat\Types\DateTime;

require 'autoload.php'

$date = new DateTime('now', new DateTimeZone('Asia/Dhaka'));

echo $date->enFormat('l jS F Y b h:i:s');
Convert English to Bangla Date
<?php
use BanglaDatetimeFormat\Types\BnDateTime;

require 'autoload.php'

$bongabda = new BnDateTime('now', new DateTimeZone('Asia/Dhaka'));

echo $bongabda->format('l jS F Y b h:i:s');
Convert Bangla to English Date
<?php
use BanglaDatetimeFormat\Types\BnDateTime;

require 'autoload.php'

$bongabda = new BnDateTime('now', new DateTimeZone('Asia/Dhaka'));

echo $bongabda->format('l jS F Y b h:i:s');
//Set Bengali date
$bongabda->setDate(1405,1,1);
//Get english date in bangla
echo $bongabda->getDateTime()->format('l jS F Y b h:i:s');
//Get english date in english
echo $bongabda->getDateTime()->enFormat('l jS F Y h:i:s');

Contributing to Library

If you find a bug or want to add a feature to BanglaDatetimeFormat, great! In order to make it easier and quicker for me to verify and merge changes in, it would be amazing if you could follow these few basic steps:

  1. Fork the project.
  2. Branch out into a new branch. git checkout -b name_of_new_feature_or_bug
  3. Make your feature addition or bug fix.
  4. Add tests for it. This is important so I don’t break it in a future version unintentionally.
  5. Commit.
  6. Send me a pull request!

Some Similar PHP libraries you may like to see: