user613114
user613114

Reputation: 2821

Angularjs date filter convert time millisecond to UTC not working

I am trying to pass timezone to angular js date filter:

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

where "input" is time in milliseconds. Returned date time string in this case is always in local timezone.

Refer to fiddle example at: http://jsfiddle.net/Cp73s/6312/

Please let me know what is wrong with this fiddle? Angular version is 1.5. Thanks in advance.

Upvotes: 1

Views: 940

Answers (1)

programtreasures
programtreasures

Reputation: 4298

Not able to convert using

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

Edited other way in fiddle,

Added utc conversion functions in filter,

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();
 };
});

Check this updated fiddle

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

Upvotes: 2

Related Questions