首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >js日期、经纬度格式化

js日期、经纬度格式化

作者头像
阿超
发布2022-08-16 19:43:18
发布2022-08-16 19:43:18
7.1K0
举报
文章被收录于专栏:快乐阿超快乐阿超

如果你不出去走走,你就会以为这就是全世界。——《天堂电影院》

如果你不出去走走,你就会以为这就是全世界。——《天堂电影院》

之前写过一篇js时间戳格式化以及一篇jsDate函数的api

今天写篇“人性化”的格式化的

代码语言:javascript
复制
// 格式化 传入毫秒值,计时秒表用
function formatTime(time) {
	if (typeof time !== 'number' || time < 0) {
		return time
	}

	var hour = parseInt(time / 3600)
	time = time % 3600
	var minute = parseInt(time / 60)
	time = time % 60
	var second = time

	return ([hour, minute, second]).map(function(n) {
		n = n.toString()
		return n[1] ? n : '0' + n
	}).join(':')
}
// 经纬度格式化
function formatLocation(longitude, latitude) {
	if (typeof longitude === 'string' && typeof latitude === 'string') {
		longitude = parseFloat(longitude)
		latitude = parseFloat(latitude)
	}

	longitude = longitude.toFixed(2)
	latitude = latitude.toFixed(2)

	return {
		longitude: longitude.toString().split('.'),
		latitude: latitude.toString().split('.')
	}
}


// 日期工具
var dateUtils = {
	UNITS: {
		'年': 31557600000,
		'月': 2629800000,
		'天': 86400000,
		'小时': 3600000,
		'分钟': 60000,
		'秒': 1000
	},
	// 人性化
	humanize: function(milliseconds) {
		var humanize = '';
		for (var key in this.UNITS) {
			if (milliseconds >= this.UNITS[key]) {
				humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
				break;
			}
		}
		return humanize || '刚刚';
	},
	// 一天内人性化 一天后格式化
	formatHumanize: function(dateStr) {
		var date = this.parse(dateStr)
		var diff = Date.now() - date.getTime();
		if (diff < this.UNITS['天']) {
			return this.humanize(diff);
		}
		return this.format(date)
	},
	// 将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象
	parse: function(str) {
		var a = str.split(/[^0-9]/);
		return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
	},
	// 将Date对象格式化为"yyyy-mm-dd HH:MM:ss"格式
	format: function(date) {
		var _format = function(number) {
			return (number < 10 ? ('0' + number) : number);
		};
		return date.getFullYear() + '-' + _format(date.getMonth() + 1) + '-' + _format(date.getDate()) +
			' ' +
			_format(date.getHours()) + ':' + _format(date.getMinutes() + ':' + _format(date.getSeconds()));
	}
};

console.log("秒表:" + formatTime(100))
var locationData = formatLocation(116.397128, 39.916527)
console.log("经度:" + locationData.longitude)
console.log("纬度:" + locationData.latitude)
console.log("人性化:" + dateUtils.humanize(Date.now() - 1516026842000))
console.log("一天内人性化,一天前格式化:" + dateUtils.formatHumanize("2021-04-14 22:30:22"))
console.log("一天内人性化,一天前格式化:" + dateUtils.formatHumanize("2021-04-15 22:00:22"))
console.log("转换为Date对象:" + dateUtils.parse("2021-04-15 22:15:22"))
console.log("格式化:" + dateUtils.format(new Date(1623766982000)))

打印结果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档