Please use code-tags .
You only run the text update in Start, whereas you’d need to update the texts frequently. The most trivial solution would be to execute in Update. However, you’ll be having superfluous overhead when you only need the time to be displayed with seconds.
A better place to update the time is when it changes. Suppose you run the game at 60 FPS, and you only need to display seconds minutes etc (i.e. no milliseconds and so on). That reduces the textual updates to about 1/60 the overhead at 60 FPS.
Next thing that has to be noted, is that your timer will already be out of sync with the actual time after a few seconds, because the yield instruction that you use does not allow to delay exactly by N seconds. You’ll have to compensate the time it took to surpass the delay value.
Instead, use self-written time tracking.
There are multiple approaches, one that is easy and at the same tme cancels out edge cases that you might encounter with other approaches is by storing the current time (you have to check what fits best, realTime, frame time (scaled or unscaled by the time scale), etc), then get the difference each frame and update the texts accordingly.
Another common way is to increase a variable yourself by Time.deltaTime (or unscaled if needed), but the above is cleaner and probably more robust.
Last but not least, if you need long-term time tracking, you should switch to something like the .NET DateTime implementation in order to work with timestamps.