Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / exotic   js

Repository URL to install this package:

Version: 2.0.8 

/ src / types / NATIVE / builtin / toDate.ts

import { isNil } from '../../primitive/nil'
import isNumber from '../../primitive/number/check/isNumberPrimitive'
import isString from '../../primitive/string/isStringPrimitive'
import { isArray } from '../../array'
import isDate from './isDate'

/**
 * convert values to dates
 * @since 5.0.0-beta.7
 *
 * @param {Date | number | string | Array<*> | *} date value to cast to a Date
 * @return {Date} it's a date!
 *
 * @example
 *    toDate()
 *    //=> new Date()
 *
 *    toDate('october-31-1960')
 *    //=> Date.parse('october-31-1960')
 *
 *    toDate(1000000)
 *    //=> new Date(1000000)
 *
 *    // year, month [, date, hours, minutes, seconds, milliseconds]
 *    toDate([2014, 1, 1])
 *    //=> new Date(2014, 1, 1)
 */
function toDate(date) {
  // this is fallback too
  // if (isNil(date)) return newDate()
  // if (isDate(date)) return date
  // if (isNumber(date)) return newDate(date)
  // if (isString(date)) return Date.parse(date)
  // if (isArray(date)) return newDate.apply(this, date)
  // else return newDate()
  if (isDate(date)) {
    return date
  } else if (isNumber(date)) {
    return new Date(date)
  } else if (isString(date)) {
    return Date.parse(date)
  } else if (isArray(date)) {
    return new Date(...date)
  } else {
    return new Date()
  }
}

export { toDate }
export default toDate