<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/71eff7c5-3f40-4fd4-ad18-1965b8cd7152/Wave_Styled.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/71eff7c5-3f40-4fd4-ad18-1965b8cd7152/Wave_Styled.png" width="40px" /> Thanks for checking out this guide.
It uses Notion's default 'created time' property as the task start time but you could just switch this with a date property (as long as you include a time, along with the date in each field) and it'll work in exactly the same way.
</aside>
dateBetween(prop("Task End"), prop("Task Start"), "hours")
dateBetween(prop("Task End"), prop("Task Start"), "minutes")
format(dateBetween(prop("Task End"), prop("Task Start"), "hours")) + " h"
if(dateBetween(prop("Task End"), prop("Task Start"), "minutes") < 60 , format(dateBetween(prop("Task End"), prop("Task Start"), "minutes")) + " m","")
if(dateBetween(prop("Task End"), prop("Task Start"), "minutes") < 60, format(dateBetween(prop("Task End"), prop("Task Start"), "minutes")) + " m", format(dateBetween(prop("Task End"), prop("Task Start"), "hours")) + " h, " + format(dateBetween(prop("Task End"), prop("Task Start"), "minutes")) + " m")
dateBetween(prop("Task End"), prop("Task Start"), "minutes") - floor(dateBetween(prop("Task End"), prop("Task Start"), "minutes") / 60) * 60
Combining the previous formula with the formatted hours calculation.
if(dateBetween(prop("Task End"), prop("Task Start"), "minutes") < 60 , format(dateBetween(prop("Task End"), prop("Task Start"), "minutes")) + " m", format(dateBetween(prop("Task End"), prop("Task Start"), "hours")) + " h " + format(dateBetween(prop("Task End"), prop("Task Start"), "minutes") - floor(dateBetween(prop("Task End"), prop("Task Start"), "minutes") / 60) * 60) + " m" )