momentkh is an add-on feature to moment js library DEMO.
$ npm install moment --save
$ npm install @thyrith/momentkh --save
This library is built depends on moment.js popular library. We added some functionality to make it easier to work with Khmer date format.
const moment = require('moment');
// Add our features to your preferred moment.js version
require('@thyrith/momentkh')(moment);
// From now on, your moment js is transformed
let today = moment();
console.log(today);
// Display date today as moment js object
// For example: moment("2018-12-15T14:49:38.586")
let khmerDate = today.toLunarDate();
console.log(khmerDate);
// Display khmer date
// For example: ថ្ងៃសៅរ៍ ៨កើត ខែមិគសិរ ឆ្នាំច សំរឹទ្ធស័ក ពុទ្ធសករាជ ២៥៦២
First, you need to clone this package to the root of your project or your /public
folder.
*** For momentjs
library, you can import it any method or any version you want.
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script src="momentkh/constant.js"></script>
<script src="momentkh/locale/km.js"></script>
<script src="momentkh/getSoriyatraLerngSak.js"></script>
<script src="momentkh/momentkh.js"></script>
<script>
var moment = momentkh(moment)
var today = moment()
console.log('Today: ', today.toKhDate())
console.log('New year at: ', moment.getKhNewYearMoment(2021))
</script>
Name | Parameter | Description | Example |
---|---|---|---|
toLunarDate | empty or String | display format as Khmer lunar date | moment().toLunarDate(); |
khDay | empty | display khmer day index | moment().khDay(); 0 -> ១កើត 1 -> ២កើត 2 -> ៣កើត ... 15 -> ១រោច 16 -> ២រោច 17 -> ៣រោច ... |
khMonth | empty | display khmer month index | moment.khMonth(); 0 -> មិគសិរ 1 -> បុស្ស 2 -> មាឃ 3 -> ផល្គុន 4 -> ចេត្រ 5 -> ពិសាខ 6 -> ជេស្ឋ 7 -> អាសាឍ 8 -> ស្រាពណ៍ 9 -> ភទ្របទ 10 -> អស្សុជ 11 -> កក្ដិក 12 -> បឋមាសាឍ 13 -> ទុតិយាសាឍ |
khYear | empty | display Buddhist Era year | moment().khYear(); |
Name | Original |
---|---|
toKhDate, tokhdate | toLunarDate |
Name | Parameter | Description | Example |
---|---|---|---|
getKhNewYearMoment | Integer | Return moment.js object. Giving the moment of Khmer New Year. (ពេលទេវតាចុះ) | moment.getKhNewYearMoment(2019); |
String or Object | Return moment.js object. Just same as calling: moment('13/04/2018', 'dd/mm/yyyy'); for Gregorian date |
moment.readLunarDate('១៥កើត ពិសាខ ព.ស. ២៥៥៥'); |
Name | Original |
---|---|
khDate, khdate | readLunarDate |
By default, it will return the format as shown in example above. However, you can also customize your format.
// Use moment.js as usual. Documentaion: momentjs.com
let myBirthday = moment('4/3/1992', 'd/m/yyy');
myBirthday.toLunarDate('dN ថ្ងៃW ខែm ព.ស. b');
// ៦កើត ថ្ងៃព្រហស្បតិ៍ ខែមិគសិរ ព.ស. ២៥៦២'
Format | Description | Example |
---|---|---|
W | ថ្ងៃនៃសប្ដាហ៍ | អង្គារ |
w | ថ្ងៃនៃសប្ដាហ៍កាត់ | អ |
d | ថ្ងៃទី ចាប់ពីលេខ ១ ដល់ ១៥ | ១ |
D | ថ្ងៃទី ចាប់ពីលេខ ០១ ដល់ ១៥ | ០១ |
n | កើត ឬ រោច | ក |
N | កើត ឬ រោច | កើត |
o | របៀបសរសេរខ្លីអំពីថ្ងៃទី | ᧡ (មានន័យថា ១កើត) |
m | ខែចន្ទគតិ | មិគសិរ |
M | ខែសុរិយគតិ | មករា |
a | ឆ្នាំសត្វ | រកា |
e | ស័ក | ឯកស័ក |
b | ឆ្នាំពុទ្ធសករាជ | ២៥៥៦ |
c | ឆ្នាំគ្រិស្តសករាជ | ២០១៩ |
j | ឆ្នាំចុល្លសករាជ | ១៤៦៣ |
I know there will be a lot of error.
There is no test running on this package. If you are available for this work, it would be very awesome.
Welcome pull request