
Product
A New Overview in our Dashboard
We redesigned Socket's first logged-in page to display rich and insightful visualizations about your repositories protected against supply chain threats.
moment-guess
Advanced tools
:tada: A utility package for guessing date's format :alarm_clock: :raised_hands:
# output default format
npx moment-guess --date "Fri, January 30th 2020, 10:00 AM"
# output strftime format
npx moment-guess --date "31st Dec, 2020" --format strftime
For details, try npx moment-guess --help
npm install moment-guess
const guessFormat = require('moment-guess');
// default format
console.log(guessFormat("31/12/2020")); // DD/MM/YYYY
// default format
console.log(guessFormat("01/01/2020 10:00 AM PST", "default")); // [ 'DD/MM/YYYY hh:mm A z', 'MM/DD/YYYY hh:mm A z' ]
// strftime format
console.log(guessFormat("Fri, January 30th 2020, 10:00 AM", "strftime")); // %a, %B %o %Y, %I:%M %p
// Errors!
try {
console.log(guessFormat("Invalid date!"));
} catch (err) {
console.log(err.message); // Couldn't parse date
}
try {
console.log(guessFormat("Mo, 23rd Nov, 2020", "strftime"));
} catch(err) {
console.log(err.message); // Couldn't find strftime modifier for "Mo"
}
2020-07-24T17:09:03+00:00(IS0 8601)
Mon, 06 Mar 2017 21:22:23 +0000(RFC 2822)
31/12/2020, 1.1.2020, 31-12-20(slash, dot or dash delimited dates, both US and UK styles)
31-Dec-2020, 1-Jan-20(dash delimited with month name)
Fri, January 30th 2020, 10:00 AM(dow, dd Mon yyyy[, hh:mm:ss am|pm|AM|PM] with both short and long names)
If the input is ambiguous like 01/01/2020(could mean DD/MM/YYYY or MM/DD/YYYY), it would display all possible matched formats. Try npx -q moment-guess -d "01/01/2020"
PM: Hey, could you please display date on the rightmost part of the row in a format similar to Fri, 6th March 2020, 10:00 AM?
Me: Sure. (types on screen ... moment(timestampFromDB).format(// Uh Oh!, what should I put here?))
Methinks: Hmm...such requirements pop up once in a while, not everyday(at least for me). And everytime it happens, I end up sifting through momentjs docs here to choose the right format tokens in order to display date in the desired format("ddd, Do MMMM YYYY, hh:mm A" in this case). Can this be avoided? Is it possible to guess a date's format from the desired date value itself?
npm run test
Entire module is split up into three main components, parsers, refiners and assigners.
Parsers break the input into individual tokens, giving meaning to each token(whether it's year, month, day...).
Refiners refine the parsed results based on certain chosen heuristics in case the input matched multiple parsers.
Assigners assign the appropriate format tokens(don't confuse these with generated tokens from input) enlisted here to each corresponding token based on the meaning given to the token by the parser(example, YYYY for a four digit year token).
Apoorv Mishra
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a ⭐️ if this project helped you!
Copyright © 2020 Apoorv Mishra.
This project is MIT licensed.
This README was generated with ❤️ by readme-md-generator
FAQs
A utility package for guessing date's format
The npm package moment-guess receives a total of 4,627 weekly downloads. As such, moment-guess popularity was classified as popular.
We found that moment-guess demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
We redesigned Socket's first logged-in page to display rich and insightful visualizations about your repositories protected against supply chain threats.
Product
Automatically fix and test dependency updates with socket fix—a new CLI tool that turns CVE alerts into safe, automated upgrades.
Security News
CISA denies CVE funding issues amid backlash over a new CVE foundation formed by board members, raising concerns about transparency and program governance.