Si el programa se ejecuta en el ordenador donde quieres obtener la hora de Colombia, y localtime() no te la devuelve de forma correcta, es que está mal configurada la zona horaria en ese ordenador.
Con este programa se puede ver si hay o no diferencias:
Código PHP:
#!/usr/bin/perl -l
print scalar gmtime();
print scalar localtime();
Si sale la misma fecha, es que está mal.