前端.时间戳&&dateformat时间格式化

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”。或在时间信息中添加时区信息。

以上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值