Each shell has its own escape sequences for PS1, so you need to set it separately for each shell. Furthermore, PS1 only makes sense for interactive shells, it isn't used by other programs. So put PS1 in the interactive startup file for your shell:
~/.bashrc for bash
~/.kshrc for ksh
~/.zshrc for zsh
Bash has a quirk: it doesn't load .bashrc in a login shell, it only loads ~/.bash_profile or absent this ~/.profile. To fix this, put the following lines in your ~/.bash_profike:
if [ -e ~/.profile ]; then . ~/.profile; fi
case $- in *i*) . ~/.bashrc;; esac
For more information about shell setup files, see Alternative to .bashrc.