The Microwave Challenge

JavaScript (ES6), 345 342 bytes

Saved 2 bytes thanks to @StephenLeppik

n=>[...'lmnopqsuvwxyz{}~'].reduce((s,c)=>(x=s.split(c)).join(x.pop()),` p{{yyvu{ xvs${(n&&n<60?n+'':(k=n||new Date/6e4|0,k/60%(n?k:12)|0||(n?0:12))+':'+('0'+k%60).slice(-2)).padEnd(9)}xoup__uuxx{~zzn1s2s3wn4s5s6wn7s8s9wuuq 0sStartmy_~ { oxp__zxllx{|x
|p{_|{y_|qox}}}uzs}uuuuu {yyy__z|u y___s|wm|y~zzv
|}}}}xu  sx q~|p{{{ox
znzq m qy|ylx}|xv`)

Test cases

let f =

n=>[...'lmnopqsuvwxyz{}~'].reduce((s,c)=>(x=s.split(c)).join(x.pop()),` p{{yyvu{ xvs${(n&&n<60?n+'':(k=n||new Date/6e4|0,k/60%(n?k:12)|0||(n?0:12))+':'+('0'+k%60).slice(-2)).padEnd(9)}xoup__uuxx{~zzn1s2s3wn4s5s6wn7s8s9wuuq 0sStartmy_~ { oxp__zxllx{|x
|p{_|{y_|qox}}}uzs}uuuuu {yyy__z|u y___s|wm|y~zzv
|}}}}xu  sx q~|p{{{ox
znzq m qy|ylx}|xv`)

O.innerText = [100, 59, 60, 120, 59999999, 1, 0].map(f).join('\n');
<pre id=O></pre>


SOGL V0.12, 151 150 bytes

╔*:@ΚG┐∙+;┐Κ+Γ╬5□
‽uS9w'+*;5wι+}:'+÷;'+%lH⁵!+‽ 0Κ}⁴‽ι}⁰ :∑ā;'!3ž"∑⅓/«juΒ  v←>k─z“M»─4n{_□}4Δ№{' ;3*I:A26□'$a22□}'(7«■  _čž'&'¹"<Ξ‘⁾žL∫L%F3‰4*'℮+f3÷⁽3*ž

Try it Here!

Explanation:

                □  a function which draws a rectangle
                   uses of the stack [xPos, yPos, height-1, (width+1)/2]
                   the width everywhere luckily is an odd number
╔*                 repeat "_" width times
  :                create a duplicate of that
   @Κ              prepend a space to it
     G             get the height on top of the stack
      ┐∙           repeat "|" vertically that many times
        +          add that below the " ___..."
         ;         get the other copy of the underscores
          ┐Κ       prepend "|" to it
            +      and add that below the rest
             Γ     palindromize horizontally with 1 overlap
              ╬5   place that at the coords [xPos; yPos], without overwriting spaces



system time
‽            }  if the input isn't 0
 uS               push date & time stuff — [year, month, day, hour, minute, second, milliscond, weekday, hours in 12-hour time, am(= 0)/pm(= 1)]
   9w             get the 9th element — hours in 12-hour time
     '+*          multiply by 60
        ;         get the array on top again
         5w       get the 5th item — minutes
           ι      pop the array
            +     add the minutes to hours*60

time formatting
:                           duplicate the time (result of above or input)
 '+÷                        divide by 60
    ;                       get the other time copy
     '+%                    mod by 60
        l                   get the length of the minutes
         H                  decrease it — truthy if the minutes are a single digit
          ⁵!                negate the hours — truthy if the hours aren't 0
            +               add those — acts like OR — truthy if minutes are a single digit or hours aren't 0
             ‽   }          if not that
               0Κ             prepend 0 to the minutes
                  ⁴         get a copy of the hours
                   ‽ }      if equal to 0
                    ι         pop the hours
                      ⁰     wrap the stack in an array
                       :∑   join with ":"

ā;      push an empty array below the time — the main canvas
  '!    push 51
    3   push 3
     ž  at [51; 3] in the canvas insert the time

main microwave body
 "...“           push 196046633463872206014875356167606
      M»─        base 50 decode — [1,1,19,31,6,4,13,18,1,1,19,23,49,2,1,6,49,17,2,6]
         4n      group 4 items — [1,1,19,31],[6,4,13,18],[1,1,19,23],[49,2,1,6],[49,17,2,6]
           {  }  for each group
            _      put the arrays contents on the stack
             □     execute the rectangle making function

boxes for the numbers
4Δ                      push [1,2,3,4]
  №                     reverse — [4,3,2,1]
   {                 }  for each
    ' ;                   push 49 below the current number — X pos
       3*                 multiply the current number by 3
         I                and increment it — Y pos
          :A              save a copy of that on variable A (for the next rectangle)
            26□           create a rectangle at [49; cnum*3+1] with width 11 and height 3
               '$         push 53 — X pos
                 a        push A — Y pos
                  22□     create a rectangle at [53; cnum*3+1] with width 3 and height 3
'(7«■  _              push 57, 14 and "  _"
        č             chop the string into chars (aka make it vertical)
         ž            insert that at [57; 14] in the canvas
          '&'¹"..‘    push 55, 15, "start"
                  ⁾   uppercase the first letter of "start"
                   ž  insert that at [55; 15] in the canvas

number inserting
L∫                   for each in 1..10, pushing counter
  L%                   push counter % 10 — the drawn digit
    F3‰                push (counter-1)%3 + 1
       4*              multiply that by 4
         '℮+           and add 47 — X position
            f3÷        floor divide the 0-based counter by 3
               ⁽       increment by 2
                3*     multiply by 3
                  ž    insert it in the main canvas