I haven't tested this, but it definitely doesn't involve anything remotely complex.. You could also use set_localinfo() rather than a cvar.
Code:
new g_StartTime;
public plugin_init()
{
g_StartTime = register_cvar("server_start_time", "%i", get_systime());
}
myFunc()
{
new upTime = get_systime() - get_pcvar_num(g_StartTime);
client_print(0, print_chat, "Uptime in seconds: %i", upTime);
client_print(0, print_chat, "Uptime in minutes: %i:%i", upTime / 60, upTime % 60);
client_print(0, print_chat, "Uptime in hours: %i:%i", upTime / 3600, upTime / 60);
}