Lightweight date formatting and parsing (~2KB). Meant to replace parsing and formatting functionality of moment.js.
npm install fecha --save
| Fecha | Moment | |
|---|---|---|
| Size (Min. and Gzipped) | 2.1KBs | 13.1KBs |
| Date Parsing | ✓ | ✓ |
| Date Formatting | ✓ | ✓ |
| Date Manipulation | ✓ | |
| I18n Support | ✓ | ✓ |
fecha.format accepts a Date object (or timestamp) and a string format and returns a formatted string. See below for
available format tokens.
Note: fecha.format will throw an error when passed invalid parameters
fecha.format(<DateObject>, <StringFormat>);
// Custom formats
fecha.format(new Date(2015, 10, 20), 'dddd MMMM Do, YYYY'); // 'Friday November 20th, 2015'
fecha.format(new Date(1998, 5, 3, 15, 23, 10, 350), 'YYYY-MM-DD hh:mm:ss.SSS A'); // '1998-06-03 03:23:10.350 PM'
// Named masks
fecha.format(new Date(2015, 10, 20), 'mediumDate'); // 'Nov 20, 2015'
fecha.format(new Date(2015, 2, 10, 5, 30, 20), 'shortTime'); // '05:30'
// Literals
fecha.format(new Date(2001, 2, 5, 6, 7, 2, 5), '[on] MM-DD-YYYY [at] HH:mm'); // 'on 03-05-2001 at 06:07'fecha.parse accepts a Date string and a string format and returns a Date object. See below for available format tokens.
Note: fecha.parse will throw an error when passed invalid parameters
// Custom formatsfecha.parse('February 3rd, 2014','MMMM Do, YYYY');// new Date(2014, 1, 3)fecha.parse('10-12-10 14:11:12','YY-MM-DD HH:mm:ss');// new Date(2010, 11, 10, 14, 11, 12)// Named masksfecha.parse('5/3/98','shortDate');// new Date(1998, 4, 3)fecha.parse('November 4, 2005','longDate');// new Date(2005, 10, 4)// Override fecha.i18n to support any languagefecha.i18n={dayNamesShort: ['Sun','Mon','Tue','Wed','Thur','Fri','Sat'],dayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],monthNamesShort: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],monthNames: ['January','February','March','April','May','June','July','August','September','October','November','December'],amPm: ['am','pm'],// D is the day of the month, function returns something like... 3rd or 11thDoFn: function(D){returnD+['th','st','nd','rd'][D%10>3 ? 0 : (D-D%10!==10)*D%10];}}fecha.masks={default: 'ddd MMM DD YYYY HH:mm:ss',shortDate: 'M/D/YY',mediumDate: 'MMM D, YYYY',longDate: 'MMMM D, YYYY',fullDate: 'dddd, MMMM D, YYYY',shortTime: 'HH:mm',mediumTime: 'HH:mm:ss',longTime: 'HH:mm:ss.SSS'};// Create a new maskfecha.masks.myMask='HH:mm:ss YY/MM/DD';// Use itfecha.format(newDate(2014,5,6,14,10,45),'myMask');// '14:10:45 14/06/06'| Token | Output | |
|---|---|---|
| Month | M | 1 2 ... 11 12 |
| MM | 01 02 ... 11 12 | |
| MMM | Jan Feb ... Nov Dec | |
| MMMM | January February ... November December | |
| Day of Month | D | 1 2 ... 30 31 |
| Do | 1st 2nd ... 30th 31st | |
| DD | 01 02 ... 30 31 | |
| Day of Week | d | 0 1 ... 5 6 |
| ddd | Sun Mon ... Fri Sat | |
| dddd | Sunday Monday ... Friday Saturday | |
| Year | YY | 70 71 ... 29 30 |
| YYYY | 1970 1971 ... 2029 2030 | |
| AM/PM | A | AM PM |
| a | am pm | |
| Hour | H | 0 1 ... 22 23 |
| HH | 00 01 ... 22 23 | |
| h | 1 2 ... 11 12 | |
| hh | 01 02 ... 11 12 | |
| Minute | m | 0 1 ... 58 59 |
| mm | 00 01 ... 58 59 | |
| Second | s | 0 1 ... 58 59 |
| ss | 00 01 ... 58 59 | |
| Fractional Second | S | 0 1 ... 8 9 |
| SS | 0 1 ... 98 99 | |
| SSS | 0 1 ... 998 999 | |
| Timezone | ZZ | -0700 -0600 ... +0600 +0700 |