JavaScript时间戳&timezone

1. 问题:给定一个时间的value:1541059860000,把它转换为东八区的显示格式

   let a = moment(1541059860000).subtract(moment().utcOffset(), 'minute').add(480, 'minute').format('YYYY-MM-DD HH:mm');
   let b = moment(1541059860000).utcOffset(480).format('YYYY-MM-DD HH:mm');
   console.log(a,b)
 
复制代码

.utcOffset(480)转换为东八区格式,但是

.utcOffset()//获取的永远是localTime的offset,不管前面的参数是有没有时区
.utcOffset(120)//转换为指定的时区格式,前面的字符串参数的时区是有意义的

console.log(moment('2018-10-06T19:21:00.000+0000').utcOffset(60).format('YYYY-MM-DD HH:mm:ssZ'))//转换为UTC+1时区
console.log(moment('2018-10-06T19:21:00.000+0200').utcOffset(60).format('YYYY-MM-DD HH:mm:ssZ'))//转换为UTC+1时区
console.log(moment('2018-10-06T19:21:00Z').utcOffset())
console.log(moment().utcOffset())//获取localTime的offset
console.log(moment('2018-10-06T19:21:00.000+0200').utcOffset())//获取的还是localTime的offset,前面参数的时区没有意义

复制代码
Unix时间戳

是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

  • UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z.
  • 一个小时表示为UNIX时间戳格式为:3600秒;
  • 一天表示为UNIX时间戳为86400秒,闰秒不计算。
  • 在大多数的UNIX系统中UNIX时间戳存储为32位,这样会引发2038年问题或Y2038。

en.wikipedia.org/wiki/ISO_86… en.wikipedia.org/wiki/ISO_we…

2. JavaScript获取时间戳与时间戳转化

Javascript 获取当前时间戳(毫秒级别):

第一种方法:

var timestamp1 = Date.parse( new Date());
复制代码

结果:1542264864020

第二种方法:

var timestamp2 = ( new Date()).valueOf();
复制代码

结果:1542264864020

第三种方法:

var timestamp3 = new Date().getTime();
复制代码

结果:1542264864020

第一种获取的时间戳是精确到秒,第二种和第三种是获取的时间戳精确到毫秒。

获取指定时间的时间戳:

// 将指定的时间字符串放入参数位置,如下:
new Date("2016-08-03 00:00:00");
复制代码

时间戳转化成时间:

function timetrans(date){
    var date = new Date(date*1000);//如果date为13位不需要乘1000
    var Y = date.getFullYear() + '-';
    var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
    var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
    var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
    var m = (date.getMinutes() <10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
    var s = (date.getSeconds() <10 ? '0' + date.getSeconds() : date.getSeconds());
    return Y+M+D+h+m+s;
}
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值