Hi there
I’m looking for a (build-in?) method that converts a number in miliseconds to a human readable duration like “2h 30m” or “46m”. I see other core plugins do that too, so i checked the API Reference but only found the parseDuration method, which seems to do the exact opposite.
Please give me a hint.
Regards
Raphael
The easiest is probably dateTime which uses momentjs.
There is also the builtin Date.
const milliseconds = Date.now();
const grafanaDate = dateTime(milliseconds).toString(); // Uses https://momentjs.com/ (Basically the same as dateTimeAsMoment)
const builtInDate = new Date(milliseconds).toString(); // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
console.log(grafanaDate); // Thu Apr 07 2022 08:14:44 GMT+0200
console.log(builtInDate); //Thu Apr 07 2022 08:14:44 GMT+0200 (Central European Summer Time)
const formattedDate = dateTime(milliseconds).format('DD/MM/YY');
console.log(formattedDate); // 07/04/22
1 Like
Thank you for your message @zuperzee! But that don’t really answers my question. I would like to have a duration and not a date in human readable format.
Found the solution. I use the humanize() method from moment now:
`moment.duration(value as number).humanize();`
Without a second parameter the unit defaults to miliseconds.
2 Likes