# tablesorter

## Duration & countdown parsers

### Flexible client-side table sorting

Back to documentation

### Notes

- Both the duration & countdown parsers are contained in the `parser-duration.js` file.
- Neither parser checks for valid time settings, all it does is parse the values to make them sortable.

### Duration Parser

- The duration parser will convert a duration time "`####`y `####`d `####`h `####`m `####`s" into a sortable value.
- It is not designed to convert `365` days into `1` year, nor perform any other conversions.
- Options:
  - `durationLabels`
    - Default: `'(?:years|year|y),(?:days|day|d),(?:hours|hour|h),(?:minutes|minute|min|m),(?:seconds|second|sec|s)'`
    - Add more or change the duration labels by modifying this option; separate the labels with a comma.
    - The label doesn't need to include regex. If you are only using one letter, change the label to `'y,d,h,m,s'`
  - `durationLength`
    - Default: `4`
    - Modify this value so that the max length of values is included.
    - The default value of `4` will include values up to `9,999`
    - Values less than or equal to `99,999` will require this option to be set to `5`
    - Values less than or equal to `999,999` need this value set to `6`, etc.

### Countdown Parser

- The countdown parser will convert a countdown time "`####`:`####`:`####`" into a sortable value.
- It is not designed to deal with invalid times like `65:99` (65 minutes & 99 seconds).
- This parser also uses the `durantionLength` value to set the maximum length of each value used in the countdown.
  - Default: `4`
  - Modify this value so that the max length of values is included.
  - The default value of `4` will include values up to `9,999`
  - Values less than or equal to `99,999` will require this option to be set to `5`
  - Values less than or equal to `999,999` need this value set to `6`, etc.

# Demo

parsed values within the column

Name | Duration | Countdown
--- | --- | ---
Frank | 1y 23d 12h 44m 9s | 2:21:16
Fred | 12d 12h 14m 20s | 44:25
Albert | 12h 14m 3s | 1:9:2
Aaron | 3d 11h 13m 22s | 1:5:5
Oliver | 3d 11h 14s | 4:33:33
Xavier | 11m 41s | 59:59
Henry | 12m | 10:22:32
Lucy | 23d 12h 44m 10s | 2:43:52
Marsha | 1y 1h 1m 1s | 3:12:18
Pat | 12 days 12hours 44minutes 50 seconds | 22:51
George | 33s | 1:53:21
Oscar | 24d 12h 11m 11s | 51:12

# Script

# HTML