new Data()
返回时间格式如Sat May 18 2019 18:58:49 GMT+0800 (中国标准时间)
JavaScript
默认返回的GMT
时间;
整个地球分为二十四时区,每个时区都有自己的本地时间,为了统一起见,使用一个统一的时间,称为通用协调时(UTC),UTC与GMT是一样都与英国伦敦的本地时相同。
但是我们需要的是北京时间
function time() {
let time = +new Date()
var date1 = new Date(time + 8 * 3600 * 1000); // 增加8小时
var date2= new Date(time + 30* 86400000 +8 * 3600 * 1000); // 往后30天
console.log(date1.toJSON().substr(0, 19).replace('T', ' '))
console.log(date2.toJSON().substr(0, 19).replace('T', ' '))
}
let k=time()
返回结果如下
> 2019-05-18 18:58:49 //当前北京时间
> 2019-06-17 18:58:49 //往后30天的北京时间
new Date(time + 8 * 3600 * 1000)
8 * 3600 * 1000 = 8h * 1h=3600s * 1s==1000ms
8h=28800000ms //以为毫秒计算
new Date(time + 30* 86400000 +8 * 3600 * 1000);
30day * 24h=86400000 +8 * 3600 * 1000
实际上也可以这样写
new Date(time + 30* 86400000 +28800000);
关于此处的时间格式转换来自https://segmentfault.com/a/1190000015992232
GMT
转为时间戳,时间戳转为格式时间操作
function time() {
let time = +new Date()
var date1 = new Date(time + 8 * 3600 * 1000); // 增加8小时
var date2= new Date(time + 30* 86400000 +8 * 3600 * 1000); // 往后30天
this.timestampToTime(Number(date1),Number(date2))
//此处Number() 将时间(Date)转时间戳(Timestamp)13位时间戳
}
//timestampToTime 将时间戳 转为格式时间
function timestampToTime(timestamp1,timestamp2) {
var time1 = new Date(timestamp1);
var time2 = new Date(timestamp2);
console.log(time1.toJSON().substr(0, 19).replace('T', ' '))
console.log(time2.toJSON().substr(0, 19).replace('T', ' '))
}
time()
//输出结果
> 2019-05-18 19:55:47
> 2019-06-17 19:55:47
格式时间 转 时间戳 及时间戳转格式日期
/*
将格式时间转为时间戳
substring()方法用于提取字符串中介于两个指定下标之间的字符
@2019-05-19 09:37:08
@这里没有设置毫秒 因为基本时间格式已满足需求
如需要设置可以使用setMilliseconds() 方法
前提传递的时间格式也有毫秒参数
@这里输出的是13位时间戳,如果要输出10位时间戳可以使用
Date.parse(date)/1000;
*/
function timestampToTime(endTime){
var date = new Date();
date.setFullYear(endTime.substring(0, 4));//设置年份
date.setMonth(endTime.substring(5, 7) - 1);//设置月份
date.setDate(endTime.substring(8, 10)); //设置一个月的某一天
date.setHours(endTime.substring(11, 13)); //设置小时
date.setMinutes(endTime.substring(14, 16));//设置分
date.setSeconds(endTime.substring(17, 19));//设置秒
console.log(Date.parse(date)) ;
this.formatDateTime(Date.parse(date))
}
/*将时间戳转为格式时间
*/
function formatDateTime(timeValue) {
var date = new Date(timeValue);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
var second = date.getSeconds();
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
console.log( y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second);
};
timestampToTime('2019-05-17 09:37:08')
网友评论