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
I'm really happy if this project is useful to you.
If you would like to buy me some breakfast, here is my ABA account number: 000 485 222. Don't forget to remark momentkh
so that I can count it as usefulness of my work.