parsetime 解析时间(获取有格式的时间的一个方法)

1,099 阅读1分钟


function parseTime(time, cFormat) {
	if (arguments.length === 0 || !time) {
	  return null
	}
	const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
	console.log(format)
	let date
	if (typeof time === 'object') {
	  date = time
	} else {
	  if ((typeof time === 'string')) {
		if ((/^[0-9]+$/.test(time))) {
		  // support "1548221490638"
		  time = parseInt(time)
		} else {
		  // support safari
		  // https://stackoverflow.com/questions/4310953/invalid-date-in-safari
		  time = time.replace(new RegExp(/-/gm), '/')
		  console.log(time)
		}
	  }
	  console.log(time.toString().length === 10)
	  if ((typeof time === 'number') && (time.toString().length === 10)) {
		time = time * 1000
	  }
	  console.log(time)
	  date = new Date(time)
	  console.log(date)
	}


	const formatObj = {
	  y: date.getFullYear(),
	  m: date.getMonth() + 1,
	  d: date.getDate(),
	  h: date.getHours(),
	  i: date.getMinutes(),
	  s: date.getSeconds(),
	  a: date.getDay()
	}
	console.log(date.getDay())
	console.log(formatObj)
	const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
		console.log('--------')
		console.log(key)
		console.log(result)
	  const value = formatObj[key]
		console.log(value)
	  // Note: getDay() returns 0 on Sunday
	  if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
	  console.log("!!!!!!!!!")
	  console.log(value.toString().padStart(2, '0'))
	  return value.toString().padStart(2, '0')
	})
	console.log("2222222222222222222222")
	console.log(time_str)
	return time_str
  }



  console.log( parseTime(1))