La respuesta sencilla a por qué los dos trozos de código dan resultados diferentes es que están escritos para dos lenguajes diferentes. El primero es bash, que era el shell por defecto en OSX 10.3 hasta 10.14. El segundo es zsh que es el shell por defecto actual. (Además, el primer código no es correcto en ningún idioma, falta un PS1 y no debería haber espacios alrededor de =)
zsh no leerá .bash_profile o .profile sino sólo .zshrc
zsh está muy bien documentado en https://zsh.sourceforge.io/ El aviso está documentado aquí
El código dado para el segundo no es seguramente lo que quieres, ya que la variable DATE se establece cuando se inicia el shell y probablemente quieres la fecha y la hora cuando se ejecuta el prompt.
Como descargo de responsabilidad, no me gustan la mayoría de las shells de UNIX, ya que la sintaxis es oscura para mí, ya que fueron diseñadas para que el usuario escribiera el menor número de caracteres posible, por lo que no las entiendo del todo, así que utilizaría shells no POSIX como pescado que le permite establecer el aviso desde una interfaz web o funciones comprensibles.
Ejemplos sencillos de las indicaciones se encuentran en el introducción a zsh Yo empezaría por ahí y aumentaría. También hay sitio web del generador de avisos zsh que te permitirá jugar con lo que se puede hacer
Sin embargo, ninguno de ellos dice nada sobre los colores. Para ello, véase el referencia zsh Esto demuestra que en el aviso %F{white}
hace que todo lo que sigue tenga un color de primer plano blanco. Así que tu ejemplo mostraría el blanco, luego el verde, luego el rojo, luego el blanco, luego el amarillo, y luego reiniciar para eliminar todos los colores.