I encountered an unusual problem when using Moment.js with Angular.js. When I use the .toISOString() method, I get the correct date, but when I use the .format() method, the date is completely wrong. Here is an example to illustrate the issue: Code snippet: var app = angular.module('myApp', []); app.controller('MyCtrl', function($scope) { $scope.isoString = moment().week(53).weekday(6).toISOString(); $scope.formatString = moment().week(53).weekday(6).format('Do of MMMM GGGG'); $scope.year = moment().week(53).weekday(6).years(); }); Results: Correct ISO String: 2016-01-02T09:40:31.236Z Incorrect Formatted String: 2nd of January 2015 Year: 2016 You can view this in action on plnkr.co. If you have any solutions or insights into this issue, please let me know. Thank you!