$filter('date')(milliSec, 'yyyy-MM-dd HH:mm:ss')
在angularJS 中 date filter会把时间转换为本地时间,即会按照电脑右下角的时间设置的时区来转换。
dateObject.getFullYear(); // 返回dateObject 的年份字段,使用本地时间。
dateObject.getMonth(); // 返回dateObject 的月份字段,使用本地时间。
要返回UTC时间,使用:
dateObject.getUTCFullYear();//返回 dateObject 用世界时表示时的年份,该值是一个四位的整数,而不是两位数的缩写。
dateObject.getUTCMonth(); //返回 dateObject 用世界时表示时的月份,该值是 0(一月) ~ 11(十二月) 之间中的一个整数。
所以,如果要格式化一个毫秒时间为UTC时间,可使用以下函数:
var format = function(time, format){
var t = new Date(time);
var tf = function(i){return (i < 10 ? '0' : '') + i};
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a){
switch(a){
case 'yyyy':
return tf(t.getUTCFullYear());
break;
case 'MM':
return tf(t.getUTCMonth() + 1); // 返回 用世界时表示时的月份,该值是 0(一月) ~ 11(十二月) 之间中的一个整数。所以要加1
break;
case 'mm':
return tf(t.getUTCMinutes());
break;
case 'dd':
return tf(t.getUTCDate());
break;
case 'HH':
return tf(t.getUTCHours());
break;
case 'ss':
return tf(t.getUTCSeconds());
break;
};
});
};
alert(format(1396178344662, 'yyyy-MM-dd HH:mm:ss'));
如果要将一个UTC时间按设置的timezone, daylightsaving 计算一个本地时间再格式化, 可以:
milliSec= milliSec+ (timeZone * 3600000) + (daylightSaving * 60000);
format(milliSec, 'yyyy-MM-dd HH:mm:ss')