return this._isUTC ? "Coordinated Universal Time" : "";
},
- hasAlignedHours : function (input) {
+ hasAlignedHourOffset : function (input) {
+ var mod = this.zone() % 60,
+ wrapAround = function (minutes) {return minutes < 0 ? 60 + minutes : minutes; };
+
if (input == null || input === '') {
- return this.zone() % 60 === 0;
+ return mod === 0;
}
else {
- return this.zone() % 60 === moment(input).zone() % 60;
+ return wrapAround(mod) === wrapAround(moment(input).zone() % 60);
}
},
"hours alignment with UTC" : function (test) {
test.expect(4);
- test.equals(moment().zone(120).hasAlignedHours(), true);
- test.equals(moment().zone(-180).hasAlignedHours(), true);
- test.equals(moment().zone(90).hasAlignedHours(), false);
- test.equals(moment().zone(-90).hasAlignedHours(), false);
+ test.equals(moment().zone(120).hasAlignedHourOffset(), true);
+ test.equals(moment().zone(-180).hasAlignedHourOffset(), true);
+ test.equals(moment().zone(90).hasAlignedHourOffset(), false);
+ test.equals(moment().zone(-90).hasAlignedHourOffset(), false);
test.done();
},
"hours alignment with other zone" : function (test) {
- test.expect(4);
+ test.expect(16);
var m = moment().zone(120);
- test.equals(m.hasAlignedHours(moment().zone(180)), true);
- test.equals(m.hasAlignedHours(moment().zone(-180)), true);
- test.equals(m.hasAlignedHours(moment().zone(90)), false);
- test.equals(m.hasAlignedHours(moment().zone(-90)), false);
+ test.equals(m.hasAlignedHourOffset(moment().zone(180)), true);
+ test.equals(m.hasAlignedHourOffset(moment().zone(-180)), true);
+ test.equals(m.hasAlignedHourOffset(moment().zone(90)), false);
+ test.equals(m.hasAlignedHourOffset(moment().zone(-90)), false);
+
+ m = moment().zone(90);
+
+ test.equals(m.hasAlignedHourOffset(moment().zone(180)), false);
+ test.equals(m.hasAlignedHourOffset(moment().zone(-180)), false);
+ test.equals(m.hasAlignedHourOffset(moment().zone(30)), true);
+ test.equals(m.hasAlignedHourOffset(moment().zone(-30)), true);
+
+ m = moment().zone(-60);
+
+ test.equals(m.hasAlignedHourOffset(moment().zone(180)), true);
+ test.equals(m.hasAlignedHourOffset(moment().zone(-180)), true);
+ test.equals(m.hasAlignedHourOffset(moment().zone(90)), false);
+ test.equals(m.hasAlignedHourOffset(moment().zone(-90)), false);
+
+ m = moment().zone(25);
+
+ test.equals(m.hasAlignedHourOffset(moment().zone(-35)), true);
+ test.equals(m.hasAlignedHourOffset(moment().zone(85)), true);
+
+ test.equals(m.hasAlignedHourOffset(moment().zone(35)), false);
+ test.equals(m.hasAlignedHourOffset(moment().zone(-85)), false);
test.done();
}