// 时间格式化
/**
 * 返回 YYYY-MM-DD
 * @param timestamp
 * @returns {string|null}
 */
export const formatDate = (timestamp) =>{
    if(timestamp == null){
      return null
    }
    // 创建Date对象并设置时间戳
    const dateObj = new Date(timestamp);
    // 提取年份、月份和日期
    const year = dateObj.getFullYear();
    const month = dateObj.getMonth() + 1; // JavaScript中月份从0开始计算，因此需加1
    const day = dateObj.getDate();
    return `${year}-${month}-${day}`;
}
// 清空对象数据
export const getObjectClearData = (obj) => {
  const data_ = obj
  Object.keys(obj).forEach(key => {
    switch (toString.call(obj[key])) {
      case '[object String]':
        data_[key] = null
        break
      case '[object Number]':
        data_[key] = 0
        break
      case '[object Array]':
        data_[key] = []
        break
      case '[object Object]':
        // data_[key] = getObjectClearData(obj[key])
        data_[key] = {}
        break
      case '[object Boolean]':
        data_[key] = false
        break
      case 'undefined':
        data_[key] = null
        break
      case '[object Null]':
        data_[key] = null
        break
      case '[object Date]':
        data_[key] = new Date()
        break
      case '[object Map]':
        data_[key] = new Map()
        break
      case '[object WeakSet]':
        //   WeakSet 是一个构造函数，可以接受一个数组或类似数组的对象作为参数 ,可以使用new命令，创建 WeakSet 数据结构。
        data_[key] = new WeakSet()
        break
      default:
        // [object Function] toString.call(function(){})
        data_[key] = null
    }
  })
  return data_
}
// =================== 获取对象.对象的值 =================
export function getObjectBySting(data, string) {
  // 判断是否传对象
  if (data === null) {
    return '没有传对象'
  }
  // 分割字符串
  let splice = []
  splice = string.split('.')
  // 分割出几个
  const length = splice.length
  if (length === 0) {
    return '没有传字符串'
  }
  if (length === 1) {
    return data[splice[0]]
  } else {
    let s = ''
    for (let i = 1; i < length; i++) {
      s = s + splice[i]
    }
    let data_ = {}
    data_ = data[splice[0]]
    if (data_ === null) {
      return splice[0] + '对象没有数据'
    }
    return getObjectBySting(data_, s)
  }
}
export const dateFormattedDate = (data, format) => {
  const date = new Date(data)
  const year = date.getFullYear()
  const month = (date.getMonth() + 1).toString().padStart(2, '0')
  const day = date.getDate().toString().padStart(2, '0')
  const hour = date.getHours().toString().padStart(2, '0')
  const minute = date.getMinutes().toString().padStart(2, '0')
  const second = date.getSeconds().toString().padStart(2, '0')
  const formattedDate = `${year}-${month}-${day} ${hour}:${minute}:${second}`
  const formattedDate1 = `${year}-${month}-${day}`
  if (format === 'YYYY-MM-DD HH:mm:ss') {
    return formattedDate
  } else {
    return formattedDate1
  }
}
