title: zsh: update prompt with current time when a command is started
body: <p>I have a <code>zsh</code> prompt I rather like: it evaluates the current time in <code>precmd</code> and displays that on the right side of the prompt:</p>
  
  <pre><code>[Floatie:~] ^_^ 
  cbowns%                      [9:28:31 on 2012-10-29]
  </code></pre>
  
  <p>However, this isn't <em>exactly</em> what I want: as you can see below, this time is actually the time the previous command exited, not the time the command was started:</p>
  
  <pre><code>[Floatie:~] ^_^ 
  cbowns% date                           [9:28:26 on 2012-10-29]
  Mon Oct 29 09:28:31 PDT 2012
  [Floatie:~] ^_^ 
  cbowns% date                           [9:28:31 on 2012-10-29]
  Mon Oct 29 09:28:37 PDT 2012
  [Floatie:~] ^_^ 
  cbowns%                                [9:28:37 on 2012-10-29]
  </code></pre>
  
  <p>Is there a hook in <code>zsh</code> to run a command just <em>before</em> the shell starts a new command so I can update the prompt timestamp then? (I saw <a href="https://stackoverflow.com/questions/2187829/constantly-updated-clock-in-zsh-prompt">Constantly updated clock in zsh prompt?</a>, but I don't need it <em>constantly</em> updated, just updated when I hit enter.)</p>
  
  <p>(The <code>^_^</code> is based on the previous command's return code. It shows <code>;_;</code> in red when there's a nonzero exit status.)</p>