Skip to content

Instantly share code, notes, and snippets.

@whatl3y
Created July 24, 2019 21:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save whatl3y/ab02c35ed824cc57904d04812287fdbe to your computer and use it in GitHub Desktop.
Save whatl3y/ab02c35ed824cc57904d04812287fdbe to your computer and use it in GitHub Desktop.
import moment from 'moment'
export default {
parse(dueDateProvided, remainingFormats=Object.keys(this.formats)) {
if (remainingFormats.length === 0)
return null
const [ format ] = remainingFormats.splice(0, 1)
if (typeof dueDateProvided === 'string' && !this.formats[format].regexp.test(dueDateProvided))
return this.parse(dueDateProvided, remainingFormats)
const date = moment(dueDateProvided, format)
if (!date.isValid())
return this.parse(dueDateProvided, remainingFormats)
return date.toDate()
},
formats: {
'YYYY-MM-DD': { regexp: /\d{4}-\d{1,2}-\d{1,2}/ },
'MM/DD/YYYY': { regexp: /\d{1,2}\/\d{1,2}\/\d{4}/ },
'MM-DD-YYYY': { regexp: /\d{1,2}-\d{1,2}-\d{4}/ }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment