获取某个日期的年月日时分秒星期时间戳以及日期时间格式化

传入一个时间戳 返回一个对象

formatDate(times) {
			const date = new Date(+times);
			const time = date.getTime();
			const year = date.getFullYear();
			let month = date.getMonth() + 1;
			month = month < 10 ? `0${month}` : month;
			let day = date.getDate();
			day = day < 10 ? `0${day}` : day;
			let hour = date.getHours();
			hour = hour < 10 ? `0${hour}` : hour;
			let minute = date.getMinutes();
			minute = minute < 10 ? `0${minute}` : minute;
			let second = date.getSeconds();
			second = second < 10 ? `0${second}` : second;
			const week = {
				0: '周日',
				1: '周一',
				2: '周二',
				3: '周三',
				4: '周四',
				5: '周五',
				6: '周六',
			};
			const w = date.getDay();
			return {
				year,
				month,
				day,
				week: week[w],
				hour,
				minute,
				second,
				time,
			};
		},

传入一个时间,返回格式化后的字符串

/**
 * 时间格式化
 * @param {Date} time 需要格式化的事件戳
 * @param {string} pattern 格式化的格式默认 {y}-{m}-{d} {h}:{i}:{s}
 * @returns {string} 格式化的字符串
 * @example
 * formatTime(new Date(),'{y}-{m}-{d} {h}:{i}')
 * formatTime(new Date().getTime(),'{y}-{m}-{d} {h}:{i}')
 * formatTime('2024-05-14 10:14','{y}-{m}-{d} {h}:{i}')
 */
const formatTime = function (time = new Date(), pattern) {
  console.log('time', time);
  if (arguments.length === 0 || !time) {
    return null;
  }
  const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}';
  let date;
  if (typeof time === 'object') {
    date = time;
  } else {
    if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
      time = parseInt(time);
    } else if (typeof time === 'string') {
      time = time
        .replace(new RegExp(/-/gm), '/')
        .replace('T', ' ')
        .replace(new RegExp(/\.[\d]{3}/gm), '');
    }
    if (typeof time === 'number' && time.toString().length === 10) {
      time = time * 1000;
    }
    date = new Date(time);
  }
  const formatObj = {
    y: date.getFullYear(),
    m: date.getMonth() + 1,
    d: date.getDate(),
    h: date.getHours(),
    i: date.getMinutes(),
    s: date.getSeconds(),
    a: date.getDay(),
  };
  const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
    let value = formatObj[key];
    // Note: getDay() returns 0 on Sunday
    if (key === 'a') {
      return ['日', '一', '二', '三', '四', '五', '六'][value];
    }
    if (result.length > 0 && value < 10) {
      value = '0' + value;
    }
    return value || 0;
  });
  return time_str;
};

为了方便后面再使用,记录一下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值