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")
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。