PHP code example of rohanadhikari / nepali-date

1. Go to this page and download the library: Download rohanadhikari/nepali-date library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

rohanadhikari / nepali-date example snippets


use RohanAdhikari\NepaliDate\NepaliDate;
use RohanAdhikari\NepaliDate\NepaliDateImmutable;

// -----------------------------
// Mutable NepaliDate
// -----------------------------
$now = NepaliDate::now(); // Current Nepali date and time

$date = NepaliDate::fromNotation('tomorrow'); // Parse a notation
$date->addDays(5);                            // Add 5 days

$adDate = $date->toAd();                       // Convert to Gregorian (AD)

$formatted = $date->format(NepaliDate::FORMAT_DATETIME_24_FULL);
// Example: 2082-06-30 14:45:22

// -----------------------------
// Immutable NepaliDate
// -----------------------------
$immutableNow = NepaliDateImmutable::now();   // Immutable current date

$immutableDate = $date->cast();               // Cast mutable to immutable and vice versa
// or
$immutableDate = $date->toImmutable();

$newDate = $immutableDate->addDays(10);       // Returns a new instance, original remains unchanged

// Require Composer's autoloader (adjust path as needed)
ari\NepaliDate\NepaliDateImmutable;

// -----------------------------
// Mutable example
// -----------------------------
$now = NepaliDate::now();
echo $now->format(NepaliDate::FORMAT_DATETIME_24_FULL);

// -----------------------------
// Immutable example
// -----------------------------
$immutable = NepaliDateImmutable::now();
$new = $immutable->addDays(5); // returns a new instance
echo $new->format(NepaliDate::FORMAT_DATE_YMD);

// -----------------------------
// Create from native DateTime (AD)
// -----------------------------
$ad = new DateTime('now', new DateTimeZone('Asia/Kathmandu'));
$fromAd = NepaliDate::fromAd($ad);
echo $fromAd->format(NepaliDate::FORMAT_DATE_YMD);

use RohanAdhikari\NepaliDate\NepaliDate;

$now = NepaliDate::now();
echo $now->format(NepaliDate::FORMAT_DATETIME_12_FULL); // 2082-06-30 10:09:38 PM
//you can also specify timezone as
$now = NepaliDate::now('Asia/Kathmandu');
//or
$timezone = new DateTimeZone('Asia/Kathmandu');
NepaliDate::now($timezone);

use RohanAdhikari\NepaliDate\NepaliDate;
$date = new DateTime();
$nepalidate = NepaliDate::fromAd($date);
echo $nepaliDate->format(NepaliDate::FORMAT_DATE_YMD); // 2082-06-30

use RohanAdhikari\NepaliDate\NepaliDate;
// Create NepaliDate for tomorrow and format it
$nepaliDate = NepaliDate::fromNotation('tomorrow');

echo $nepaliDate->format(NepaliDate::FORMAT_DATE_YMD); // e.g. 2082-06-31

use RohanAdhikari\NepaliDate\NepaliDate;

$nepaliDate = NepaliDate::fromTimestamp(1760632252);

echo $nepaliDate->format(NepaliDate::FORMAT_DATETIME_24_FULL); // e.g. 2082-06-30 22:15:52

use RohanAdhikari\NepaliDate\NepaliDate;

$nepalidate = new NepaliDate(2082,6,30,timezone:'Asia/kathmandu')

    use RohanAdhikari\NepaliDate\NepaliDate;
    // Get the current Nepali date and time
    $date = NepaliDate::now();

    // Using a predefined format (24-hour datetime)
    echo $date->format(NepaliDate::FORMAT_DATETIME_24);
    // Example output: 2082-06-31 21:14

    // Using a custom format string
    echo $date->format('Y-m-d H:i');
    // Example output: 2082-06-31 21:14

    // Using full month name + weekday
    echo $date->format('l, F j, Y');
    // Example output: Friday, Ashwin 31, 2082

    // Using ISO 8601 format
    echo $date->format('c');
    // Example output: 2082-06-31T21:14:14+05:45

    // Using RFC 2822 format
    echo $date->format('r');
    // Example output: Fri, 31 Asw 2082 21:14:14 +0545

    use RohanAdhikari\NepaliDate\NepaliDate;

    $date = NepaliDate::now();
    $date->setLocale(NepaliDate::NEPALI); //Using defined constant
    //or
    $date->locale('np');
    //or
    $date->locale = 'np'; //Not supported for ImmmutableNepaliDate

    echo $date->format(NepaliDate::FORMAT_DATETIME_24);
    //Example Output: २०८२-०६-३१ २१:३४

    //for reset
    $date->resetLocale();

> NepaliDate::defaultLocale(NepaliDate::NEPALI);
> 

    use RohanAdhikari\NepaliDate\NepaliDate;

    $nepalidate = NepaliDate::parse('2080-06-02');

    $nepalidate = NepaliDate::parse('2080-6-02');

    $nepalidate = NepaliDate::parse('13:12');

    //adding new custom parse pattern
    NepaliDate::addDefaultParserFormat('j F, Y');
    NepaliDate::parse('1 Kartik, 2082');

    //also can add multple custom parse format at once
    NepaliDate::addDefaultParserFormats(['j F, Y', 'j M, Y']);

use RohanAdhikari\NepaliDate\NepaliDate;

$nepaliDate = NepaliDate::createFromFormat('j F, Y', '1 Kartik, 2082');

$nepaliDate = NepaliDate::createFromFormat('Y-m-d H:i:s', '2080-07-01 14:30:00');

$nepaliDate = NepaliDate::createFromFormat('h:i A', '02:45 PM');

use RohanAdhikari\NepaliDate\NepaliDate;

    $nepalidate = NepaliDate::now(); //Today: 2082-07-01
    $nepalidate->addYear();
    echo $nepalidate;
    //Example Output: 2083-07-01 13:48:02
    $nepalidate->subMinute();
    echo $nepalidate;
    //Example Output: 2083-07-01 13:48:15
    $nepalidate->subDays(5);
    echo $nepalidate;
    //Example Output: 2083-06-27 13:48:49
    $nepalidate->addDays(10);
    echo $nepalidate;
    //Example Output: 2083-07-07 13:50:25

    //or also you use
    $nepalidate->modifyUnit(NepaliUnit::Month, 2);
    echo $nepalidate;
    //Example Output: 2083-08-27 13:49:24
    $nepalidate->modifyUnit(NepaliUnit::Month, -3);
    echo $nepalidate;
    //Example Output: 2083-05-27 13:49:53


    $date1 = NepaliDate::now();
    $date2 = NepaliDate::now()->addDays(50);
    $date1->diff($date2); //will return php built in DateInterval.

   date.getLocaleYear()   // "२०८२" //for nepali locale
   date.localeYear()      // same result
   date.localeYear        // same result
  

   $nepalidate.year(2081);
   

   $nepalidate.year = 2081;
   

use RohanAdhikari\NepaliDate\NepaliDate;

    // current timezone: Asia/Kathmandu
    $nepaliDate = NepaliDate::now();
    echo $nepaliDate->format(NepaliDate::FORMAT_ISO_8601);
    //Exmaple Output: 2082-07-01T11:41:22+05:45

    //shift timezone to Autralia
    $nepaliDate->shiftTimezone('Australia/Melbourne');
    echo $nepaliDate->format(NepaliDate::FORMAT_ISO_8601);
    //Example Output: 2082-07-01T16:56:22+11:00

use RohanAdhikari\NepaliDate\NepaliDate;

 $nepaliDate = NepaliDate::parse('2082-07-02');
    // shift to previous monday
    $nepaliDate->shiftToNearWeek(NepaliWeekDay::Monday, false);
    echo $nepaliDate->format(NepaliDate::FORMAT_DATE_SLASH_YMD);
    // shift to next monday
    $nepaliDate->shiftToNearWeek(NepaliDate::MONDAY);
    //or
    $nepaliDate->shiftToNearWeek(NepaliWeekDay::Monday);
    echo $nepaliDate->format(NepaliDate::FORMAT_DATE_SLASH_YMD);


use RohanAdhikari\NepaliDate\NepaliDate;

$nepaliDate = NepaliDateImmutable::now();
// end of century
echo $nepaliDate->endOfCentury(); // auto convert to string using FORMAT_DATETIME_24_FULL
// Example Output: 2100-12-31 23:59:59

// start of decade
echo $nepaliDate->startOfDecade()->format(NepaliDate::FORMAT_DATE_SLASH_YMD);
// Example Output: 2080/01/01

//start of quarter
echo $nepaliDate->startOf(NepaliUnit::Quarter)->format(NepaliDate::FORMAT_DATETIME_24_FULL);
    // Example Output: 2082-07-01 00:00:00

//end of week
echo $nepaliDate->endOf(NepaliUnit::Week)->format(NepaliDate::FORMAT_DATETIME_24_FULL);
// Example Output: 2082-07-01 23:59:59

use RohanAdhikari\NepaliDate\NepaliDate;

    //Today Date: 2082-07-01
    $nepaliDate = NepaliDate::parse('2082-07-02'); //WeekDay: Sunday

    var_dump($nepaliDate->eq('2082-07-02'));
    // Output: bool(true)

    var_dump($nepaliDate->gt('2082-07-02'));
    // Output: bool(false)

    var_dump($nepaliDate->gt(NepaliDate::now()));
    // Output: bool(true)

    var_dump($nepaliDate->lt(NepaliDate::now()));
    // Output: bool(false)

    var_dump($nepaliDate->between('2082-07-01', '2082-07-03'));
    // Output: bool(true)

    var_dump($nepaliDate->betweenExcluded('2082-07-01', '2082-07-02'));
    // Output: bool(false)

    var_dump($nepaliDate->betweenIncluded('2082-07-01', '2082-07-02'));
    // Output: bool(true)

    var_dump($nepaliDate->isPast());
    // Output: bool(false)

    // Check if the date is tomorrow
    var_dump($nepaliDate->isTomorrow());
    // Output: bool(true)

    // Check if the date is weekday
    var_dump($nepaliDate->isWeekday());
    // Output: bool(true)

    // Check if the date is weekend
    var_dump($nepaliDate->subDays(1)->isWeekend());
    // Output: bool(true)