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')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值