如何把时间戳格式和⽇期格式相互转换
X+8*3600当前时区的时间(秒),北京时间+8⼩
时
(X+8*3600)/86400转换单位为天,⼀天为86400秒
(X+8*3600)/86400+70*365加上1900到1970这七⼗年
(X+8*3600)/86400+70*365+19
加上闰年多出来的天数19天往往在页⾯中批量导⼊⼀些员⼯信息类,会有传⼊excel 表格,进⾏解析拿到对应数据,渲染,但其中得到的数据并不是我们所期待的可以通过以下的公式来进⾏数据的转化
unix时间戳转换日期格式Excel 中时间戳转换公式及原理
这个公式的原理:Excel的⽇期实际上是序列值,它以1900-1-1为1,且从北京时间8点开始,每过⼀天序列值加1,。⽽Unix时间戳是从1970-1-1 00:00:00 UTC开始到现在经过的秒数。⽤X表⽰时间戳,可得到换算公式:
1、时间戳转换成正常⽇期的公式:
B2=(A2+8*3600)/86400+70*365+19
2、正常⽇期转换为时间戳格式的公式:
C2=(B2-70*365-19)*86400-8*3600
其中,B2为正常⽇期时间的表格,C2为所需时间戳格式的表格
具体项⽬中封装的⽅法如下:
changeDate(num) {
// 先将excel 中读取到的时间转化为时间戳
const t = new Date((num - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000)
// 将时间减少70年(不确定闰年与否,采⽤setYear ⽅法)
t.FullYear() - 70)
return t
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论