持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
前言
作为前端开发,不可避免的要遇到时间处理的问题,我工作中有时也会遇到,但总是用的时候就搜一下,一直都没记住,今天抽空做下总结,学习一下。
常见的时间格式
常见的时间格式一般就三种,如下:
- 时间戳,这种比较通用
格式:1651833646057
获取方法:
new Date().getTime()
,获取的是当前时间的时间戳
- 中国标准时间
格式:Fri May 06 2022 18:45:37 GMT+0800 (中国标准时间)
获取方法:
new Date()
- 年月日格式的
比如2022-5-6 或者2022/5/6
这种类型的没法直接获取,要进行转换
时间格式转换
- 年月日格式传时间戳
以2022/5/7为例
new Date('2022/5/7').getTime()
注意,这里的年月日要加上引号,也就是字符串形式
- 年月日转中国标准时间
new Date('2022/5/7 10:22')
- 时间戳转中国标准时间
以上面的时间戳为例,1651890000000
new Date(1651890000000),时间戳不用引起来
- 中国标准时间转年月日
以Sat May 07 2022 10:20:00 GMT+0800 (中国标准时间)为例
这个要一个转换的函数,如下
function standardTimeToYmd(param) {
//中国标准时间字符串转对象
var date = new Date(param);
//获取年
var y = date.getFullYear();
//获取月
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
//获取天
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
//获取小时
var h = date.getHours();
//获取分钟
var minute = date.getMinutes();
minute = minute < 10 ? ('0' + minute) : minute;
//获取秒
var second = date.getSeconds();
second = second < 10 ? ('0' + second) : second;
//拼接年月日及时间为固定的格式,这里年月日是按'-'拼接,可以换成其它的任何形式,比如'/'
Time = y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
return Time
}
console.log(standardTimeToYmd('Sat May 07 2022 10:20:00 GMT+0800 (中国标准时间)'))
- 时间戳转日期时间
1.可以使用上面提到的先转中国标准时间,再由中国标准时间转年月日时间
2.还是先转中国标准时间,然后使用toLocaleString()方法
方法二存在兼容性问题,用的时候要小心
- 时间戳的前一天或者后一天
前一天时间戳:当前时间戳 - (24*60*60*1000)
后一天时间戳:当前时间戳 + (24*60*60*1000)
总结
日常开发中用到的时间格式修改的问题大概就这些,之后遇到新的再来添加。