angularJS 转换UTC时间及DateFormat问题
$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")
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: JavaScript中清空数组的三种方式
- 下一篇:没有了
