A small and simple date shortcode library.
npm install --save date-shortcode
const dateShortcode = require('date-shortcode')
var str = 'It is {h:mm A} on the {Do} day of {MMMM YYYY}.'
dateShortcode.parse(str)
//=> 'It is 3:26 PM on the 1st day of March 2018.'
Returns an Array
containing all possible codes, their current values, descriptions, and examples.
Optional
A Date object or a String to pass to a Date object. Defaults to now.
dateShortcode.codes('2007-06-12')
//=> [ { code: 'MMMM',
//=> value: 'June',
//=> description: 'Month',
//=> example: 'January February ... November December' },
//=> { code: 'MMM',
//=> value: 'Jun',
//=> description: 'Month (3 characters)',
//=> example: 'Jan Feb ... Nov Dec' },
//=> { code: 'MM',
//=> value: '06',
//=> ...
Change configuration parameters. Returns an instance of date-shortcode
.
The configuration parameters to change.
var dateShortcodeConfig = {
openTag: '\\[',
closeTag: '\\]'
}
const dateShortcode = require('date-shortcode').config(dateShortcodeConfig)
var str = 'It\'s the [wo] week of \'[YY]!'
dateShortcode.parse(str)
//=> "It's the 9th week of '18!"
Parse a String with date shortcodes in it. Returns a String.
The String to do the parsing on.
Optional
A Date object or a String to pass to a Date object. Defaults to now.
var str = 'Current date: {MMMM Do, YYYY}'
dateShortcode.parse(str, '2006-10-09')
//=> 'Current date: October 9th, 2006'
Strip date shortcodes from a string.
The string to strip date shortcodes from.
var str = 'It is {h:mm A} on the {Do} day of {MMMM YYYY}.'
dateShortcode.strip(str)
//=> 'It is on the day of .'
Test if two Strings would be the same without date shortcodes.
First string to test.
Second string to test.
var str1 = 'It is {h:mm A} on the {Do} day of {MMMM YYYY}.'
var str2 = 'It is 3:26 PM on the 1st day of March 2018.'
dateShortcode.test(str1, str2)
//=> true
var str3 = 'This string is nothing like the rest.'
dateShortcode.test(str1, str3)
//=> false
This function will return true
if the two supplied strings are very similar.
For example:
var str1 = 'Hey, it\'s {h}!'
var str2 = 'Hey, it\'s Bob!'
dateShortcode.test(str1, str2)
//=> true
var str1 = 'Hey, it\'s {h} o\'clock!'
var str2 = 'Hey, it\'s Bob Saget!'
dateShortcode.test(str1, str2)
//=> false
These are the codes that you can use with the above functions. They are case-sensitive. You may use a combination of multiple codes as well as non-shortcode characters in a set of brackets (i.e {H:mmA} {M/D/YY}
).
Description | Code | Example |
---|---|---|
Month | MMMM | January February ... November December |
Month (3 characters) | MMM | Jan Feb ... Nov Dec |
Month Number (Padded) | MM | 01 02 ... 11 12 |
Month Number (Suffixed) | Mo | 1st 2nd ... 11th 12th |
Month Number | M | 1 2 ... 11 12 |
Quarter (Suffixed) | Qo | 1st 2nd 3rd 4th |
Quarter | Q | 1 2 3 4 |
Day of Year (Padded) | DDDD | 001 002 ... 364 365 |
Day of Year (Suffixed) | DDDo | 1st 2nd ... 364th 365th |
Day of Year | DDD | 1 2 ... 364 365 |
Day of Month (Padded) | DD | 01 02 ... 30 31 |
Day of Month (Suffixed) | Do | 1st 2nd ... 30th 31st |
Day of Month | D | 1 2 ... 30 31 |
Day of Week | dddd | Sunday Monday ... Friday Saturday |
Day of Week (3 characters) | ddd | Sun Mon ... Fri Sat |
Day of Week (2 characters) | dd | Su Mo ... Fr Sa |
Day of Week Number (Suffixed) | do | 0th 1st ... 5th 6th |
Day of Week Number | d | 0 1 ... 5 6 |
Week of Year (Padded) | ww | 01 02 ... 52 53 |
Week of Year (Suffixed) | wo | 1st 2nd ... 52nd 53rd |
Week of Year | w | 1 2 ... 52 53 |
Year | YYYY | 1970 1971 ... 2029 2030 |
Year (2 characters) | YY | 70 71 ... 29 30 |
AM/PM | A | AM PM |
am/pm | a | am pm |
Hour (24 hours/Padded) | kk | 01 02 ... 23 24 |
Hour (24 hours) | k | 1 2 ... 23 24 |
Hour (12 hours/Padded) | hh | 01 02 ... 11 12 |
Hour (12 hours) | h | 1 2 ... 11 12 |
Hour (24 hours/0-Index/Padded) | HH | 00 01 ... 22 23 |
Hour (24 hours/0-Index) | H | 0 1 ... 22 23 |
Minute (Padded) | mm | 00 01 ... 58 59 |
Minute | m | 0 1 ... 58 59 |
Second (Padded) | ss | 00 01 ... 58 59 |
Second | s | 0 1 ... 58 59 |
MIT. See the license.md file for more info.