Angularjs日期过滤器将时间毫秒转换为UTC不起作用

问题描述 投票:1回答:1

我试图将时区传递给角度js日期过滤器:

var _date = $filter('date')(input, 'yyyy/MM/dd HH:mm:ss', 'UTC');

其中“输入”是以毫秒为单位的时间。在这种情况下,返回的日期时间字符串始终在本地时区。

请参阅以下小提琴示例:http://jsfiddle.net/Cp73s/6312/

请告诉我这个小提琴有什么问题?角度版本是1.5。提前致谢。

javascript angularjs datetime timezone angularjs-filter
1个回答
2
投票

无法转换使用

var _date = $filter('date')(input, 'yyyy/MM/dd HH:mm:ss', 'UTC');

在小提琴中编辑其他方式,

在过滤器中添加了utc转换功能,

myapp.filter('dateFormat', function($filter)
{
 var toUTCDate = function(date){
    var _utc = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),  date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
    return _utc;
  };

 var millisToUTCDate = function(millis){ 
    return toUTCDate(new Date(millis));
  };

 return function(input)
 {
  if(input == null){ return ""; } 
  var _date = $filter('date')(millisToUTCDate(input), "yyyy/MM/dd HH:mm:ss");
  return _date.toUpperCase();
 };
});

检查这个更新的小提琴

http://jsfiddle.net/Cp73s/6312/

© www.soinside.com 2019 - 2024. All rights reserved.