How can I convert this Bash prompt to zsh?
As others have already mentioned, there are built-in sequences for setting colours, like %F{red}. If you want to include more exotic terminal control codes, you can do it like this:
PS1=$'%{\e[1m%}%m%{\e[0m%}'

(This should make the prompt display your hostname in boldface, on most typical terminals.) There are two things to notice here

Using the $'... ' quoting mechanism to include control characters in the string. This is described under QUOTING in the zshmisc(1) man page. (In other words, this is what makes \e work).

Using %{...%} to indicate that the enclosed sequence does not cause the cursor to move.

(%m expands to the host name. This is described under PROMPT SEQUENCES in zshmisc(1), but you probably knew this already.)


(Alright then, three things. Monty Python fans will know what reference I would put here, others won't care. :-) )