emmmm,最近几个月因为准备实习和项目,需要和其他人线上交流的原因,基本上笔记都在有道云笔记里了。博客都积灰了。。。。
今天记一下的是时间戳与时间格式化的运用。
——————————————————————————————————————————————
先是实现的时间戳函数
Date.parse(time)//time中需带有日期信息,格式为字符串,如"2018/03/15" ,"2018-03-15", "Jan 5, 1996 08:47:00"
new Date().getTime()//Date对象即可调用该方法
两种方法获得的返回都为 与1970年1月1日午夜之间的毫秒数之差,
其中Date.prase(time)所求得的为time中的时间与1970年1月1日午夜的毫秒差,且精确至秒,
new Date().getTime()所求得为现在时间与1970年1月1日午夜的毫秒差,
相比而言Date.parse(time)会要相对而言灵活一些
注意点:
1)Date.parse(),()中为空时输出为NaN,但可以被dateformat格式化,格式化之后输出一样为现在的时间
2)time的格式为”xxxx-xx-xx"时,所求的时间差将从早上8:00开始计算时间差,因为在此格式时是按UTC时区计算
3)time数据类型需为字符串
———————————————————————————————————————————————————
再是dataformat时间格式化
因为js并不自带dateformat函数,自写的dateformat函数各异,所以在下就直接引用的是正在做的、基于react的项目中的一段代码,其中dateformat函数是node_modules中dateformat包写好的函数,因为有230行,此处不贴源码了,因为是基于react的一个demo,在此只记录一下思路,不会贴完整代码
resExp.data.data = resExp.data.data
.map(v => {
v.lessonsTime =
Date.parse("2018-03-05")+((7*(`${v.weeks_no}`-1)+(`${v.week}`-1))*24 * 3600 * 1000
console.log(Date.parse("2018-03-05")+"||||"+new Date().getTime())
console.log(dataformat(Date.parse())+"||||"+dataformat(new Date().getTime()))
})
此处是调用一处信息接口,接口信息调用后储存在resExp.data.data中,map函数为react的遍历方法,此处不需要深究。
demo的目的是求出考试的准确日期,已知开学日期为2018-03-05,接口信息中存有周数和星期数,。
${v.weeks_no}
为周数 ${v.week}
为星期数
${}
为react调用变量的格式,不需要理会
控制台输出结果为
正如上面所说,prase方法精确值秒,time的格式为”xxxx-xx-xx"时,所求的时间差将从早上8:00开始计算时间差,因为在此格式时是按UTC时区计算。如果是获取准确时间需要跳过这个八小时的坑,可换时间的格式解决,
如“xxxx/xx/xx”。或在时间信息中添加时区信息。
以上。