JS封装时间格式化函数

日常开发中,经常会遇到后端返回的时间不是我们想要的格式,有两种选择:

第一种:引入第三方库(moment.js / day.js
第二种:自己封装一个时间格式化函数

看完这篇文章,你也可以拥有自己的时间格式化函数

直接上代码

/**
 * @description: 时间戳/中国标准时间转为y-m-d h:m:s(由第二个参数决定)
 * @param {Date | Number} time	时间戳或中国标准时间
 * @param {Number} length 如:10代表转换为YYYY-MM-DD
 * @return {Date}	返回日期格式
 */
function format(time, length = 19) {
	let date;
	// 传入的是时间戳
	if (typeof time === "number" && !isNaN(time)) {
		let timeLength = time.toString().length;
		// 10位时间戳
		if (timeLength === 10) {
			date = new Date(time * 1000 + 8 * 3600 * 1000);
		} else if (timeLength === 13) {
			// 13位时间戳
			date = new Date(time + 8 * 3600 * 1000);
		} else {
			console.log("请传入10位或13位的时间戳!");
			return;
		}
	} else {
		// 传入的是中国标准时间
		date = new Date(Date.parse(time) + 8 * 3600 * 1000);
	}
	// 校验传入的时间格式
	if (!date.toJSON()) {
		console.log("传入的时间格式不正确!");
		return;
	}
	return date.toJSON().substr(0, length).replace("T", " ").replace(/-/g, "-");
}

补充:检测一个变量是否为有效数字

1、Object.prototype.toString.call(‘1’) === ‘[object Number]’
2、typeof 1 === ‘number’ && !isNaN(1)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值