diff options
author | Sebastian <sebasjm@gmail.com> | 2021-08-23 16:46:06 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2021-08-23 16:48:30 -0300 |
commit | 38acabfa6089ab8ac469c12b5f55022fb96935e5 (patch) | |
tree | 453dbf70000cc5e338b06201af1eaca8343f8f73 /date-fns/src/_lib/format/longFormatters/index.js | |
parent | f26125e039143b92dc0d84e7775f508ab0cdcaa8 (diff) | |
download | node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.gz node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.bz2 node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.zip |
Diffstat (limited to 'date-fns/src/_lib/format/longFormatters/index.js')
-rw-r--r-- | date-fns/src/_lib/format/longFormatters/index.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/date-fns/src/_lib/format/longFormatters/index.js b/date-fns/src/_lib/format/longFormatters/index.js new file mode 100644 index 0000000..ff84163 --- /dev/null +++ b/date-fns/src/_lib/format/longFormatters/index.js @@ -0,0 +1,66 @@ +function dateLongFormatter(pattern, formatLong) { + switch (pattern) { + case 'P': + return formatLong.date({ width: 'short' }) + case 'PP': + return formatLong.date({ width: 'medium' }) + case 'PPP': + return formatLong.date({ width: 'long' }) + case 'PPPP': + default: + return formatLong.date({ width: 'full' }) + } +} + +function timeLongFormatter(pattern, formatLong) { + switch (pattern) { + case 'p': + return formatLong.time({ width: 'short' }) + case 'pp': + return formatLong.time({ width: 'medium' }) + case 'ppp': + return formatLong.time({ width: 'long' }) + case 'pppp': + default: + return formatLong.time({ width: 'full' }) + } +} + +function dateTimeLongFormatter(pattern, formatLong) { + var matchResult = pattern.match(/(P+)(p+)?/) + var datePattern = matchResult[1] + var timePattern = matchResult[2] + + if (!timePattern) { + return dateLongFormatter(pattern, formatLong) + } + + var dateTimeFormat + + switch (datePattern) { + case 'P': + dateTimeFormat = formatLong.dateTime({ width: 'short' }) + break + case 'PP': + dateTimeFormat = formatLong.dateTime({ width: 'medium' }) + break + case 'PPP': + dateTimeFormat = formatLong.dateTime({ width: 'long' }) + break + case 'PPPP': + default: + dateTimeFormat = formatLong.dateTime({ width: 'full' }) + break + } + + return dateTimeFormat + .replace('{{date}}', dateLongFormatter(datePattern, formatLong)) + .replace('{{time}}', timeLongFormatter(timePattern, formatLong)) +} + +var longFormatters = { + p: timeLongFormatter, + P: dateTimeLongFormatter +} + +export default longFormatters |