opened
adobo
username_0
Creating a moment Duration with more than one unit and specifying positive and negative values makes `toISOString()` to return wrong values.

For instance ([jsfiddle](http://jsfiddle.net/k4jwmac4/)):

```javascript

moment.duration({
  days: -1,
  hours: 8
}).toISOString();
```

Will return `-P1DT8H`, which is not what the duration object contained. `-P1DT8H` would mean *1 day and 8 hours less*, opposed to the original meaning *1 day less, 8 hours more*.

I found this issue while working with FullCalendar, which returns moment Durations on some callbacks. Just a question to know if this should be reported to FullCalendar instead: does it make sense to create Duration objects mixing units and positive/negative values?

Putting it another way: should the unit recalculations be performed before calling the Duration constructor, o should Duration do some calculations before returning an ISO string?
Wrong values generated by Duration#toISOString() when mixing positive and negative values
issue
created
coltrane
username_1
"-P1DT3S"
```
comment
created
ashsearle
username_2
Should be fixed by pull request #4062, where:

```js
moment.duration({
  days: -1,
  hours: 8
}).toISOString();
```

will return `-P1DT-8H`
comment
closed
marwahaha
username_3
issue
created
marwahaha
username_3
Fixed!
comment