Display Current Nepali Date in WordPress

In this tutorial, we will discuss how to display current Nepali date in WordPress site.

The use of Nepali dates has gained popularity with the increment of Nepali bloggers and blogging websites in Nepal. You can notice the use of Nepali date mostly in news portal websites at the top of the page or even on the sidebar of the site.

There are a few plugins which help you to convert English date to Nepali date. Here we are Experimenting few of them.

Display Current Nepali Date in WordPress Site with Plugins

Nepali Date Utilities

This plugin is easy to use. This Plugin contains post dates and today’s date shortcode to help sites display Nepali dates.

Features of this plugins : 

  • Convert English Date to Nepali Date
  • Convert time ago English time to Nepali time( 5 min agaadi)
  • It’s convenient to use.
  • The plugin can be accessed via shortcodes or PHP functions.
  • It also supports the current date.
  • Highly valid

Display current Nepali date using Nepali utilities plugin

Step 1: Install and activate the plugin

To install the plugin, login to your dashboard. Scroll down to “WordPress Dashboard> Plugins> Add New” as shown in the screenshot below. Search for “Nepali Date“.

Display current nepali date in WordPress

Step 2 Use the given code to display the current Nepali date

After successfully installing and activating the plugin, we are ready to carry out our main task. If you want to display the current Nepali date at the top of the page, open the header.php template in the text editor and insert the following codes in the proper place.

To display current nepali date. 

<?php echo ndu_today_date();?>

To print today’s date using shortcode.

<?php echo do_shortcode('[ndu_today_date]');?>

Step 3: Save the templates and refresh the site. 

After inserting the given code in the header.php save the template and refresh the site once again. Boom !!! Now your site will display the current Nepali date.

Here, you also can display a min ago (५ मिनेट अगाडि/५ घण्टा अगाडि/५ दिन अगाडि) format in Nepali on the homepage. For that you need to go to the Setting>Nepali Date Utilities and check Home Page Date Format and in dropdown select “use time ago”.

Time ago format in WordPress

Remember this only works in the Home Page of your WordPress Site.

nepali date for WordPress website

If you want to display the current Nepali date in the Sidebar of your website then just go to Appearance > widgets. There you can find “Today Date in Nepali” drag and drop the widgets where you want to display the current Nepali date in the sidebar of your website.

Again refresh the site and you will see current nepali date in the sidebar of your website. 

There are few other plugins which work similar like above. Some other plugins that display current nepali date are:

Date Today Nepali

Nepali Date Converter

Nyasro Nepali Date Converter

Nepali Date

Display Current Nepali Date in WordPress without Plugin

If you are a developer and love coding then you might want to develop your own functions. Or you don’t want to use more plugins. Here we are providing the codes which display the current nepali date in your website without using plugins.

Here we go :

Step 1: Create the template name “nepalidate.php” (or name you want).

WordPress current nepali date

Create the template in the theme directory (wp-content/themes/your_theme/inc). It’s better if you create the template inside the folder. Here we created the “inc” folder and create “nepalidate.php” inside “inc” Folder.

And paste the following codes in “nepalidate.php”

<?php
 
/**
 * @Author: developer
 * @Date:   2020-04-02 22:14:00
 * @Last Modified by:   developer
 * @Last Modified time: 2020-04-02 22:29:02
 */
class Nepali_Calendar
{
    // Data for nepali date
    private $_bs = array(
        0 => array(2000,30,32,31,32,31,30,30,30,29,30,29,31),
        1 => array(2001,31,31,32,31,31,31,30,29,30,29,30,30),
        2 => array(2002,31,31,32,32,31,30,30,29,30,29,30,30),
        3 => array(2003,31,32,31,32,31,30,30,30,29,29,30,31),
        4 => array(2004,30,32,31,32,31,30,30,30,29,30,29,31),
        5 => array(2005,31,31,32,31,31,31,30,29,30,29,30,30),
        6 => array(2006,31,31,32,32,31,30,30,29,30,29,30,30),
        7 => array(2007,31,32,31,32,31,30,30,30,29,29,30,31),
        8 => array(2008,31,31,31,32,31,31,29,30,30,29,29,31),
        9 => array(2009,31,31,32,31,31,31,30,29,30,29,30,30),
        10 => array(2010,31,31,32,32,31,30,30,29,30,29,30,30),
        11 => array(2011,31,32,31,32,31,30,30,30,29,29,30,31),
        12 => array(2012,31,31,31,32,31,31,29,30,30,29,30,30),
        13 => array(2013,31,31,32,31,31,31,30,29,30,29,30,30),
        14 => array(2014,31,31,32,32,31,30,30,29,30,29,30,30),
        15 => array(2015,31,32,31,32,31,30,30,30,29,29,30,31),
        16 => array(2016,31,31,31,32,31,31,29,30,30,29,30,30),
        17 => array(2017,31,31,32,31,31,31,30,29,30,29,30,30),
        18 => array(2018,31,32,31,32,31,30,30,29,30,29,30,30),
        19 => array(2019,31,32,31,32,31,30,30,30,29,30,29,31),
        20 => array(2020,31,31,31,32,31,31,30,29,30,29,30,30),
        21 => array(2021,31,31,32,31,31,31,30,29,30,29,30,30),
        22 => array(2022,31,32,31,32,31,30,30,30,29,29,30,30),
        23 => array(2023,31,32,31,32,31,30,30,30,29,30,29,31),
        24 => array(2024,31,31,31,32,31,31,30,29,30,29,30,30),
        25 => array(2025,31,31,32,31,31,31,30,29,30,29,30,30),
        26 => array(2026,31,32,31,32,31,30,30,30,29,29,30,31),
        27 => array(2027,30,32,31,32,31,30,30,30,29,30,29,31),
        28 => array(2028,31,31,32,31,31,31,30,29,30,29,30,30),
        29 => array(2029,31,31,32,31,32,30,30,29,30,29,30,30),
        30 => array(2030,31,32,31,32,31,30,30,30,29,29,30,31),
        31 => array(2031,30,32,31,32,31,30,30,30,29,30,29,31),
        32 => array(2032,31,31,32,31,31,31,30,29,30,29,30,30),
        33 => array(2033,31,31,32,32,31,30,30,29,30,29,30,30),
        34 => array(2034,31,32,31,32,31,30,30,30,29,29,30,31),
        35 => array(2035,30,32,31,32,31,31,29,30,30,29,29,31),
        36 => array(2036,31,31,32,31,31,31,30,29,30,29,30,30),
        37 => array(2037,31,31,32,32,31,30,30,29,30,29,30,30),
        38 => array(2038,31,32,31,32,31,30,30,30,29,29,30,31),
        39 => array(2039,31,31,31,32,31,31,29,30,30,29,30,30),
        40 => array(2040,31,31,32,31,31,31,30,29,30,29,30,30),
        41 => array(2041,31,31,32,32,31,30,30,29,30,29,30,30),
        42 => array(2042,31,32,31,32,31,30,30,30,29,29,30,31),
        43 => array(2043,31,31,31,32,31,31,29,30,30,29,30,30),
        44 => array(2044,31,31,32,31,31,31,30,29,30,29,30,30),
        45 => array(2045,31,32,31,32,31,30,30,29,30,29,30,30),
        46 => array(2046,31,32,31,32,31,30,30,30,29,29,30,31),
        47 => array(2047,31,31,31,32,31,31,30,29,30,29,30,30),
        48 => array(2048,31,31,32,31,31,31,30,29,30,29,30,30),
        49 => array(2049,31,32,31,32,31,30,30,30,29,29,30,30),
        50 => array(2050,31,32,31,32,31,30,30,30,29,30,29,31),
        51 => array(2051,31,31,31,32,31,31,30,29,30,29,30,30),
        52 => array(2052,31,31,32,31,31,31,30,29,30,29,30,30),
        53 => array(2053,31,32,31,32,31,30,30,30,29,29,30,30),
        54 => array(2054,31,32,31,32,31,30,30,30,29,30,29,31),
        55 => array(2055,31,31,32,31,31,31,30,29,30,29,30,30),
        56 => array(2056,31,31,32,31,32,30,30,29,30,29,30,30),
        57 => array(2057,31,32,31,32,31,30,30,30,29,29,30,31),
        58 => array(2058,30,32,31,32,31,30,30,30,29,30,29,31),
        59 => array(2059,31,31,32,31,31,31,30,29,30,29,30,30),
        60 => array(2060,31,31,32,32,31,30,30,29,30,29,30,30),
        61 => array(2061,31,32,31,32,31,30,30,30,29,29,30,31),
        62 => array(2062,30,32,31,32,31,31,29,30,29,30,29,31),
        63 => array(2063,31,31,32,31,31,31,30,29,30,29,30,30),
        64 => array(2064,31,31,32,32,31,30,30,29,30,29,30,30),
        65 => array(2065,31,32,31,32,31,30,30,30,29,29,30,31),
        66 => array(2066,31,31,31,32,31,31,29,30,30,29,29,31),
        67 => array(2067,31,31,32,31,31,31,30,29,30,29,30,30),
        68 => array(2068,31,31,32,32,31,30,30,29,30,29,30,30),
        69 => array(2069,31,32,31,32,31,30,30,30,29,29,30,31),
        70 => array(2070,31,31,31,32,31,31,29,30,30,29,30,30),
        71 => array(2071,31,31,32,31,31,31,30,29,30,29,30,30),
        72 => array(2072,31,32,31,32,31,30,30,29,30,29,30,30),
        73 => array(2073,31,32,31,32,31,30,30,30,29,29,30,31),
        74 => array(2074,31,31,31,32,31,31,30,29,30,29,30,30),
        75 => array(2075,31,31,32,31,31,31,30,29,30,29,30,30),
        76 => array(2076,31,32,31,32,31,30,30,30,29,29,30,30),
        77 => array(2077,31,32,31,32,31,30,30,30,29,30,29,31),
        78 => array(2078,31,31,31,32,31,31,30,29,30,29,30,30),
        79 => array(2079,31,31,32,31,31,31,30,29,30,29,30,30),
        80 => array(2080,31,32,31,32,31,30,30,30,29,29,30,30),
        81 => array(2081,31,31,32,32,31,30,30,30,29,30,30,30),
        82 => array(2082,30,32,31,32,31,30,30,30,29,30,30,30),
        83 => array(2083,31,31,32,31,31,30,30,30,29,30,30,30),
        84 => array(2084,31,31,32,31,31,30,30,30,29,30,30,30),
        85 => array(2085,31,32,31,32,30,31,30,30,29,30,30,30),
        86 => array(2086,30,32,31,32,31,30,30,30,29,30,30,30),
        87 => array(2087,31,31,32,31,31,31,30,30,29,30,30,30),
        88 => array(2088,30,31,32,32,30,31,30,30,29,30,30,30),
        89 => array(2089,30,32,31,32,31,30,30,30,29,30,30,30),
        90 => array(2090,30,32,31,32,31,30,30,30,29,30,30,30)
        );
    private $_nep_date = array('year' => '', 'month' => '', 'date' => '', 'day' => '', 'nmonth' => '', 'num_day' => '');
    private $_eng_date = array('year' => '', 'month' => '', 'date' => '', 'day' => '', 'emonth' => '', 'num_day' => '');
    public $debug_info = "";
    /**
     * Return day
     *
     * @param int $day
     * @return string
     */
    private function _get_day_of_week($day)
    {
        switch ($day)
        {
            case 1:
                $day = "आइतबार";
                break;
            case 2:
                $day = "सोमबार"; 
                break;
            case 3:
                $day = "मंगलबार";
                break;
            case 4:
                $day = "बुधबार";
                break;
            case 5:
                $day = "बिहिबार";
                break;
            case 6:
                $day = "शुक्रबार";
                break;
            case 7:
                $day = "शनिबार";
                break;
        }
        return $day;
    }
    private function get_nepali_number($nepnumber)
    {
        switch ($nepnumber)
        {
            case 0:
                $nepnumber = "०";
                break;
            case 1:
                $nepnumber = "१";
                break;
            case 2:
                $nepnumber = "२"; 
                break;
            case 3:
                $nepnumber = "३";
                break;
            case 4:
                $nepnumber = "४";
                break;
            case 5:
                $nepnumber = "५";
                break;
            case 6:
                $nepnumber = "६";
                break;
            case 7:
                $nepnumber = "७";
                break;
            case 7:
                $nepnumber = "८";
                break;
            case 7:
                $nepnumber = "९";
                break;
        }
        return $nepnumber;
    }
    /**
     * Return english month name
     *
     * @param int $m
     * @return string
     */
    private function _get_english_month($m)
    {
        $eMonth = FALSE;
        switch ($m)
        {
            case 1:
                $eMonth = "January";
                break;
            case 2:
                $eMonth = "February";
                break;
            case 3:
                $eMonth = "March";
                break;
            case 4:
                $eMonth = "April";
                break;
            case 5:
                $eMonth = "May";
                break;
            case 6:
                $eMonth = "June";
                break;
            case 7:
                $eMonth = "July";
                break;
            case 8:
                $eMonth = "August";
                break;
            case 9:
                $eMonth = "September";
                break;
            case 10:
                $eMonth = "October";
                break;
            case 11:
                $eMonth = "November";
                break;
            case 12:
                $eMonth = "December";
        }
        return $eMonth;
    }
    /**
     * Return nepali month name
     *
     * @param int $m
     * @return string
     */
    private function _get_nepali_month($m)
    {
        $n_month = FALSE;
        switch ($m)
        {
            case 1:
                $n_month = "बैसाख";
                break;
            case 2:
                $n_month = "जेठ";
                break;
            case 3:
                $n_month = "असार";
                break;
            case 4:
                $n_month = "साउन";
                break;
            case 5:
                $n_month = "भाद्र";
                break;
            case 6:
                $n_month = "अषोज";
                break;
            case 7:
                $n_month = "कार्तिक";
                break;
            case 8:
                $n_month = "मंग्सिर";
                break;
            case 9:
                $n_month = "पुष";
                break;
            case 10:
                $n_month = "माघ";
                break;
            case 11:
                $n_month = "फागुण";
                break;
            case 12:
                $n_month = "चैत्र";
                break;
        }
        return $n_month;
    }
    /**
     * Check if date range is in english
     *
     * @param int $yy
     * @param int $mm
     * @param int $dd
     * @return bool
     */
    private function _is_in_range_eng($yy, $mm, $dd)
    {
        if ($yy < 1944 || $yy > 2033)
        {
            return 'Supported only between 1944-2022';
        }
        if ($mm < 1 || $mm > 12)
        {
            return 'Error! month value can be between 1-12 only';
        }
        if ($dd < 1 || $dd > 31)
        {
            return 'Error! day value can be between 1-31 only';
        }
        return TRUE;
    }
    /**
     * Check if date is with in nepali data range
     *
     * @param int $yy
     * @param int $mm
     * @param int $dd
     * @return bool
     */
    private function _is_in_range_nep($yy, $mm, $dd)
    {
        if ($yy < 2000 || $yy > 2089)
        {
            return 'Supported only between 2000-2089';
        }
        if ($mm < 1 || $mm > 12)
        {
            return 'Error! month value can be between 1-12 only';
        }
        if ($dd < 1 || $dd > 32)
        {
            return 'Error! day value can be between 1-31 only';
        }
        return TRUE;
    }
    /**
     * Calculates wheather english year is leap year or not
     *
     * @param int $year
     * @return bool
     */
    public function is_leap_year($year)
    {
        $a = $year;
        if ($a % 100 == 0)
        {
            if ($a % 400 == 0)
            {
                return TRUE;
            }
            else
            {
                return FALSE;
            }
        }
        else
        {
            if ($a % 4 == 0)
            {
                return TRUE;
            }
            else
            {
                return FALSE;
            }
        }
    }
    /**
     * currently can only calculate the date between AD 1944-2033...
     *
     * @param int $yy
     * @param int $mm
     * @param int $dd
     * @return array
     */
    public function eng_to_nep($yy, $mm, $dd)
    {
        // Check for date range
        $chk = $this->_is_in_range_eng($yy, $mm, $dd);
        if($chk !== TRUE)
        {
            die($chk);
        }
        else
        {
            // Month data.
            $month  = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
             
            // Month for leap year
            $lmonth = array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
            $def_eyy     = 1944;    // initial english date.
            $def_nyy     = 2000;
            $def_nmm     = 9;
            $def_ndd     = 17 - 1;  // inital nepali date.
            $total_eDays = 0;
            $total_nDays = 0;
            $a           = 0;
            $day         = 7 - 1;
            $m           = 0;
            $y           = 0;
            $i           = 0;
            $j           = 0;
            $numDay      = 0;
            // Count total no. of days in-terms year
            for ($i = 0; $i < ($yy - $def_eyy); $i++) //total days for month calculation...(english)
            {
                if ($this->is_leap_year($def_eyy + $i) === TRUE)
                {
                    for ($j = 0; $j < 12; $j++)
                    {
                        $total_eDays += $lmonth[$j];
                    }
                }
                else
                {
                    for ($j = 0; $j < 12; $j++)
                    {
                        $total_eDays += $month[$j];
                    }
                }
            }
            // Count total no. of days in-terms of month
            for ($i = 0; $i < ($mm - 1); $i++)
            {
                if ($this->is_leap_year($yy) === TRUE)
                {
                    $total_eDays += $lmonth[$i];
                }
                else
                {
                    $total_eDays += $month[$i];
                }
            }
            // Count total no. of days in-terms of date
            $total_eDays += $dd;
            $i           = 0;
            $j           = $def_nmm;
            $total_nDays = $def_ndd;
            $m           = $def_nmm;
            $y           = $def_nyy;
            // Count nepali date from array
            while ($total_eDays != 0)
            {
                $a = $this->_bs[$i][$j];
                 
                $total_nDays++;     //count the days
                $day++;             //count the days interms of 7 days
                if ($total_nDays > $a)
                {
                    $m++;
                    $total_nDays = 1;
                    $j++;
                }
                 
                if ($day > 7)
                {
                    $day = 1;
                }
                 
                if ($m > 12)
                {
                    $y++;
                    $m = 1;
                }
                 
                if ($j > 12)
                {
                    $j = 1;
                    $i++;
                }
                 
                $total_eDays--;
            }
            $numDay = $day;
            $this->_nep_date['year']    = $y;
            $this->_nep_date['month']   = $m;
            $this->_nep_date['date']    = $total_nDays;
            $this->_nep_date['day']     = $this->_get_day_of_week($day);
            $this->_nep_date['nmonth']  = $this->_get_nepali_month($m);
            $this->_nep_date['num_day'] = $numDay;
            $this->_nep_date['num_day'] = $numDay;
            return $this->_nep_date;
        }
    }
    /**
     * Currently can only calculate the date between BS 2000-2089
     *
     * @param int $yy
     * @param int $mm
     * @param int $dd
     * @return array
     */
    public function nep_to_eng($yy, $mm, $dd)
    {
        $def_eyy     = 1943;
        $def_emm     = 4;
        $def_edd     = 14 - 1;  // initial english date.
        $def_nyy     = 2000;
        $def_nmm     = 1;
        $def_ndd     = 1;       // iniital equivalent nepali date.
        $total_eDays = 0;
        $total_nDays = 0;
        $a           = 0;
        $day         = 4 - 1;
        $m           = 0;
        $y           = 0;
        $i           = 0;
        $k           = 0;
        $numDay      = 0;
        $month  = array(
            0,
            31,
            28,
            31,
            30,
            31,
            30,
            31,
            31,
            30,
            31,
            30,
            31
        );
        $lmonth = array(
            0,
            31,
            29,
            31,
            30,
            31,
            30,
            31,
            31,
            30,
            31,
            30,
            31
        );
        // Check for date range
        $chk = $this->_is_in_range_nep($yy, $mm, $dd);
        if ( $chk !== TRUE)
        {
            die($chk);
        }
        else
        {
            // Count total days in-terms of year
            for ($i = 0; $i < ($yy - $def_nyy); $i++)
            {
                for ($j = 1; $j <= 12; $j++)
                {
                    $total_nDays += $this->_bs[$k][$j];
                }
                $k++;
            }
            // Count total days in-terms of month
            for ($j = 1; $j < $mm; $j++)
            {
                $total_nDays += $this->_bs[$k][$j];
            }
            // Count total days in-terms of dat
            $total_nDays += $dd;
            // Calculation of equivalent english date...
            $total_eDays = $def_edd;
            $m           = $def_emm;
            $y           = $def_eyy;
            while ($total_nDays != 0)
            {
                if ($this->is_leap_year($y))
                {
                    $a = $lmonth[$m];
                }
                else
                {
                    $a = $month[$m];
                }
                $total_eDays++;
                $day++;
                if ($total_eDays > $a)
                {
                    $m++;
                    $total_eDays = 1;
                    if ($m > 12)
                    {
                        $y++;
                        $m = 1;
                    }
                }
                if ($day > 7)
                {
                    $day = 1;
                }
                $total_nDays--;
            }
             
            $numDay = $day;
            $this->_eng_date['year']    = $y;
            $this->_eng_date['month']   = $m;
            $this->_eng_date['date']    = $total_eDays;
            $this->_eng_date['day']     = $this->_get_day_of_week($day);
            $this->_eng_date['nmonth']  = $this->_get_english_month($m);
            $this->_eng_date['num_day'] = $numDay;
            return $this->_eng_date;
        }
    }
}
 
function convertToUnicodeNum($number) {
    $standard_numsets = array("0","1","2","3","4","5","6","7","8","9");
    $devanagari_numsets = array("०","१","२","३","४","५","६","७","८","९");
    return str_replace($standard_numsets, $devanagari_numsets, $number);
}
function myNepaliDate($cyear, $cmonth, $cday){
         
        $cal = new Nepali_Calendar();
        $nepdate = $cal->eng_to_nep($cyear, $cmonth, $cday);
        $year_name = convertToUnicodeNum($nepdate['year']);
        $month_name = $nepdate['nmonth'];
        $date_number = convertToUnicodeNum($nepdate['date']);
        $day_name = $nepdate['day'];
        echo $date_number . " " . $month_name . ", " . $year_name . " " . $day_name;
}
function getpost_npdate(){
    $cal = new Nepali_Calendar();
    $post_dayname = get_the_date('d');
    $post_year = get_the_date('Y');
    $post_month = get_the_date( 'm' );
    $post_day = get_the_date( 'j' );
    $npdate = $cal->eng_to_nep($post_year,$post_month,$post_day);
 
    $ndin = $npdate['day'];
    $nMahina = $npdate['nmonth'];
    $nBaar = convertToUnicodeNum($npdate['date']);
    $nWarsha = convertToUnicodeNum($npdate['year']);
    echo $nMahina . " " . $nBaar . ", " . $nWarsha. ' '.$ndin;
}
 
function todayNpDate(){
    $cal = new Nepali_Calendar();
    $baar = date('j');
    $mahina = date('m');
    $warsha = date('Y');
    $eng_day = date('l');
    $day = convertDayName($eng_day);
    $npdate = $cal->eng_to_nep($warsha, $mahina, $baar);
    $ndin = $npdate['day'];
    $nMahina = $npdate['nmonth'];
    $nBaar = convertToUnicodeNum($npdate['date']);
    $nWarsha = convertToUnicodeNum($npdate['year']);
    echo $ndin." , ".$nMahina . " " . $nBaar . ", " . $nWarsha;
}
 
function convertNos($nos){
        $n = '';
      switch($nos){
        case "0": $n = "०"; break;
        case "1": $n = "१"; break;
        case "2": $n = "२"; break;
        case "3": $n = "३"; break;
        case "4": $n = "४"; break;
        case "5": $n = "५"; break;
        case "6": $n = "६"; break;
        case "7": $n = "७"; break;
        case "8": $n = "८"; break;
        case "9": $n = "९"; break;
       }
       return $n;
    }
    function convertDayName($dayname){
        $n = '';
      switch($nos){
        case "Sunday": $n = "आइतबार"; break;
        case "Monday": $n = "सोमबार"; break;
        case "Tuesday": $n = "मंगलबार"; break;
        case "Wednesday": $n = "बुधबार"; break;
        case "Thursday": $n = "बिहीबार"; break;
        case "Friday": $n = "शुक्रबार"; break;
        case "Saturday": $n = "शनिबार"; break;
       }
       return $dayname;
    }

Include the following code in functions.php

<?php require get_template_directory() . '/inc/nepalidate.php';?>

Insert the following code where you want to display Current Nepali date. 

<?php if (function_exists('todayNpDate')){todayNpDate();} ?>

We hope that this tutorial will help to accomplish your tasks at ease. If you know  any other plugins or ideas that convert English date to Nepali date, please comment in the form below.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *