# Round Moment.js to previous interval

When working with dates and times it's not unusual to restrict the options a user can choose. For example when presenting the user with a dropdown of times to choose from, but only allow 5min intervals. You want to add a sensible default, for example the previous interval. So when the user opens the dialog at 09:02 the default should be 09:00.

It's possible to do this with Moment.js and it's `duration`

function:

```
export function floorToInterval(date: Moment, interval: number, unit: DurationConstructor) {
const duration = moment.duration(interval, unit);
return moment(Math.floor((+date) / (+duration)) * (+duration));
}
```

A call of the function would look like this:

`const defaultTime = floorToInterval(moment(), 5, 'minutes');`

When exchanging the `floor`

function with `ceil`

, you can do the same but for the next interval instead of the previous one.

```
export function ceilToInterval(date: Moment, interval: number, unit: DurationConstructor) {
const duration = moment.duration(interval, unit);
return moment(Math.ceil((+date) / (+duration)) * (+duration));
}
```