1. #!/usr/bin/env node
  2. const yargs = require('yargs');
  3. const moment = require('moment');
  4. const argv = yargs
  5. .usage('Usage: $0 <date_string>')
  6. .demandCommand(1, 'Please provide a date string.')
  7. .help()
  8. .alias('h', 'help')
  9. .argv;
  10. function validateDate(dateString) {
  11. // Attempt to parse the date string with various formats
  12. const parsedDate = moment(dateString, 'YYYY-MM-DD HH:mm:ss | YYYY-MM-DD | MM/DD/YYYY | MM/DD/YY | DD/MM/YYYY | DD/MM/YY | YYYY', true);
  13. if (!parsedDate.isValid()) {
  14. return false; // Date is invalid
  15. }
  16. return true; // Date is valid
  17. }
  18. function main() {
  19. const dateString = argv._[0];
  20. if (!validateDate(dateString)) {
  21. console.error('Error: Invalid date format.');
  22. process.exit(1);
  23. }
  24. // Example: Show date in different formats
  25. console.log(`Original Date: ${dateString}`);
  26. console.log(`Formatted (YYYY-MM-DD): ${moment(dateString, 'YYYY-MM-DD').format('YYYY-MM-DD')}`);
  27. console.log(`Formatted (MM/DD/YYYY): ${moment(dateString, 'MM/DD/YYYY').format('MM/DD/YYYY')}`);
  28. console.log(`Formatted (DD/MM/YYYY): ${moment(dateString, 'DD/MM/YYYY').format('DD/MM/YYYY')}`);
  29. console.log(`Formatted (HH:mm:ss): ${moment(dateString, 'HH:mm:ss').format('HH:mm:ss')}`);
  30. console.log(`Formatted (YYYY-MM-DD HH:mm): ${moment(dateString, 'YYYY-MM-DD HH:mm').format('YYYY-MM-DD HH:mm')}`);
  31. }
  32. main();

Add your comment