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的午夜)开始所通过的秒数,不考虑闰秒。bash

  • 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…ui

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

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

第一种方法:code

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

结果:1542264864020orm

第二种方法:cdn

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

结果:1542264864020blog

第三种方法:ip

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

结果:1542264864020字符串

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

获取指定时间的时间戳:

// 将指定的时间字符串放入参数位置,以下:
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;
}
复制代码
相关文章
相关标签/搜索