+1 for KISS.
At a bare minimum, every time the conveyor starts or stops, get the current value of WallClockTime (cf.
this link), and push it on into a FIFO array, and OTE its low bit to the same state as the conveyor's RUN bit (the low bit is microseconds, so accuracy will not be significantly affected).
An approach not quite a simple would create a UDT to time-tag each change of state of the conveyor run bit.
Using the search term LINT at @janner-10's URL above should get you to
this link; which has links to download tools (AOIs, I would assume) for doing math with long integers.
You will spend more time fiddling about with converting the data in that FIFO to various output formats (don't forget daylight savings time) than with the code to do basic data gathering into the FIFO. Possibly the best way to handle it would be to upload the FIFO data to another machine, where calculations are easier to code e.g. a spreadsheet with VBA.
TL;DR
WallClockTime can be a 64-bit integer, LINT, or two 32-integers, DINTs, in an array. It represents elapsed microseconds since the epoch 1970-JAN-01 00:00:00.000000.
If you do everything in the PLC, make sure any floating-point calculations use LREALs.