工作中碰到后台返回给我utc时间,让我转为本地时间显示。
系统中用的是moment中的方法去转换的。关于utc时间有很多不懂的地方,所以系统的归整一下。
UTC时间是什么
utc为协调世界时,现在是作为世界标准时间使用。有二十四个时区,英国为零时区,即utc,中国为东八区,即utc+8,美国佛罗里达在西五区,即utc-5.
UNIX时间戳
以「1970-01-01T00:00:00」为起点的毫秒数
将utc时间转为local时间
function FormatLocaDate(obj){
var str = '';
str += obj.getFullYear() + '-';
if ((obj.getMonth() + 1) < 10) {
str += '0' + (obj.getMonth() + 1) + '-';
}else{
str += (obj.getMonth() + 1) + '-';
}
if (obj.getDate() < 10) {
str += '0' + obj.getDate();
} else {
str += obj.getDate();
}
return str;
}
FormatLocaDate(new Date( date + ' UTC '))
将local时间转为utc时间
function FormatUtcDate(obj)
{
var str = '';
str += obj.getUTCFullYear() + '-';
if ((obj.getUTCMonth() + 1) < 10) {
str += '0' + (obj.getUTCMonth() + 1) + '-';
}else{
str += (obj.getUTCMonth() + 1) + '-';
}
if (obj.getUTCDate() < 10) {
str += '0' + obj.getUTCDate();
} else {
str += obj.getUTCDate();
}
return str +' '+ obj.getUTCHours() +':'+ obj.getUTCMinutes() +':'+ obj.getUTCSeconds();
}
FormatUtcDate(new Date( date + ' 00:00:00 '))
使用moment将utc时间转为本地时间
let localTime = moment.utc(created_at).toDate();
localTime = moment(localTime).format("MM/DD/YYYY hh:mm:ss AM");
//将"2017-09-21T01:28:27"转换成Benin时间"09/20/2017 09:59:28 AM"
使用moment将本地时间转为utc时间
moment("2017-04-22 19:50:16").utc().format("MM/DD/YYYY")
moment工作中常用的方法
创建时间
moment()
moment("undefined")
比较大小
isBefore
isAfter
equal
格式转换
format('xxxxxxx')
get/set方法
moment().day(Number|String); moment().day()
其他单位相似
操作
add(Number, string)
subtract(Number, string)
startOf(String) //通过将原始的 moment 设置为时间单位的开头来对其进行更改
endOf(String)